admin管理员组文章数量:1794759
(二)零基础入门C语言
让我们来回顾一下上一节课讲的内容,在上一节课中,我们主要讲述了C语言的几个部分
第一个:C语言的程序结构,在C语言中,程序的运行是从main函数开始的,一直运行到main函数的末尾。其中可能还有,一些预处理器相关的声明。
第二个:C语言的基本语法,每一条语句后面都必须增加一个英文字母的分号,编译器会自动忽略空格,C语言中有两种注释方法,分别是单行注释//和多行注释/**/,C语言的标识符具有一定命名规则,C语言具有很多关键字,这些都需要熟悉。
第三个:C语言的数据类型,在C语言中有丰富的数据类型,算术类型有char,short,int,long,float,double等数据类型,知道了这些数据在计算机中是如何存储的,同时我们还了解了sizeof这个关键字的作用,另外还有void类型的用法,当然C语言不止这些类型,后面我们还会继续向你的数据库中添加内容。
第四个:C语言的变量和常量,变量就是在程序运行过程可以改变的量,定义一个变量,实际上就是给某一个存储器单元地址赋予了名字,我们能够更加方便地操作,我们了解了变量的一些用法;与此同时,我们还讲述了C语言中的常量,常量即常数量,在程序运行过程中,其值保持不变。在C语言中,我们可以直接定义常量,同时我们也可以间接定义常量。直接定义常量很简单,根据常量的规则,直接写出来即可;间接定义常量,有两种方法,一种是利用预处理命令#define,另一种是使用const关键字定义常量,#define常量和const常量有所不同,所以需要加以理解和区分。
第五个:C语言的运算符,C语言中具有丰富的运算符,其中包括算术运算符,关系运算符,位运算符,逻辑运算符,赋值运算符和杂项运算符,我们需要了解,并熟练掌握各种运算符的用法和其优先级顺序,在后面的嵌入式学习中才能更加得心应手。
好了,以上就是上一节课讲述的内容。内容并不算太多,大家应该能很快就理解,这节课我们接着来讲,这节课我们主要讲的内容是,C语言中的三大结构流程语句,顺序结构,条件结构和循环结构。
一、顺序结构语句
顺序语句比较好理解,那就是所有语句,一条一条按照从上到下的顺序执行,这里就举一个简单的栗子:
#include <stdio.h> int main(void) { printf("这是第一条执行的语句!\\r\\n"); printf("这是第二条执行的语句!\\r\\n"); printf("这是第三条执行的语句!\\r\\n"); return 0; }以上就是一个顺序结构,从main函数第一句话开始,从上到下按照顺序执行。输出结果如下:
很明显,输出的顺序是从上到下,一条一条执行的。
二、条件结构语句
判断结构语句主要的作用就是,当某个或者某些条件成立的时候,我们执行某一套程序;条件不成立的时候我们执行另一套程序。在C语言中判断结构语句有两种,一种是if...else...语句,另一种是switch...case...语句,我们首先来看if...else...语句
1、if...else...语句
首先让我们来看几个if...else...语句的栗子
#include <stdio.h> int main(void) { int a=1,b=2,c=3,d; if((a+b)==c) d = 4; printf("d: %d\\r\\n",d); return 0; }这是一个只有if的语句,当a+b的值与c相等时,才会执行。
#include <stdio.h> int main(void) { int a=1,b=2,c=3,d; if((a+b)!=3) { d = 2; }else{ d = 6; } printf("d: %d\\r\\n",d); return 0; }这是一个if...else...语句,如果if语句中的条件成立了,就会执行d=2,否则就会执行d=6语句;
#include <stdio.h> int main(void) { int a=1,b=2,c=3,d; if(a==2) { d = 1; }else if(b==3) { d = 2; }else if(c==3) { d = 3; }else { d = 4; } printf("d: %d\\r\\n",d); return 0; }上述代码,展示了连续if...else..if...else 语句,这种结构,会一个一个判断if语句内的条件,如果条件成立,就执行下列语句块,如果不成立,则继续判断下一个if语句内的条件,直到没有了if语句或者遇到了else语句。
2、switch...case...语句
switch语句也是一个条件分支语句,我们首先来看一个栗子,
#include <stdio.h> int main(void) { int a = 1,b; switch(a) { case 1: b = 1;break; case 2: b = 2;break; case 3: b = 3;break; case 4: b = 4;break; default: b = 0; } printf("b: %d\\r\\n",b): return 0; }上述语句就是switch语句常用的语法结构,首先判断a的值,根据a的值去执行对应的语句,末尾的default就是在所有条件都不满足的条件下,应该执行的语句。注意,switch语句的条件,只能是整数类型!否则会报错。注意每个条件成立执行的语句末尾应当添加一个break语句,来跳出switch语句,除非你是刻意这样编写代码的,让我们来举一个栗子来看:
#include <stdio.h> int main(void) { int a = 1,b; switch(a) { case 1: b = 1; case 2: b = 2; case 3: b = 3; case 4: b = 4;break; default: b = 0; } printf("b: %d\\r\\n",b): return 0; }这段代码,执行的结果是什么呢?答案是 b: 4;为什么b的值是4呢?这是因为switch语句的执行原理,switch语句执行原理是从满足条件的地方开始执行语句后面的所有语句,直到遇到break或者执行到最后一条语句。
三、循环结构语句
顺序结构和条件结构对于刚刚学习C语言的新手来说,难度不大,比较容易理解,但是很多新手在循环结构语句中,常常把自己绕晕,分不清东南西北,最后循环做的一塌糊涂。接下来我们来仔细地讲解一下循环语句,循环,就是重复的执行某一套程序,其中会有一个循环变量用于控制循环的起始和退出条件,其实,对于循环语句来说,我们搞清楚了循环变量的意义,就很容易能够理解循环语句。C语言中有三大循环语句,while循环,do...while循环,for循环,接下来让我们逐个讲解。
1.while循环语句
让我们先来看一看,while语句的一个栗子
#include <stdio.h> int main(void) { int i = 10,a = 0,sum = 0; while(i) { sum += a; a++; i--; } printf("sum = %d,a = %d\\r\\n",sum,a); return 0; }while语句首先会判断其后面的条件,如果后面的条件为真,则执行后面的语句块;如果后面的条件为假,则直接跳出while循环语句。在这里,循环变量为i,每次执行完语句后,i都会减一,很明显,这里的i是循环变量,它的意义就是循环指定次数的代码。在这里,i从10开始,每次执行一次代码减一,一直到0,循环条件为假,然后退出while循环。那while循环里的重复执行的语句又是什么呢?sum表示的是累加和,每次和a变量进行一次累加,累加完之后,a的值自增一。那就相当于0+1+2+3+4.......加到多少,取决于循环多少次,这里循环10次,最终加到9。
对于循环语句的分析,我们首先需要判断其执行的次数是多少,然后接着看需要执行代码的内容是什么,如果初学者一下看不出来,初学的时候可以每个循环结构都在自己的脑子里执行一遍,一步一步的走下去,最终得到结果。经过长时间的训练,对循环结构的分析就了如执掌了。
2.do...while语句
我们首先来看看do...while语句的语法
#include <stdio.h> int main(void) { int i = 10,a = 0,sum = 0; do { sum += a; a++; i--; } while(i); printf("sum = %d,a = %d\\r\\n",sum,a); return 0; }do...while和while语句其实很像,语法首先会执行一遍do后面的语句块,然后再判断while后面的条件,如果条件为真,则继续执行语句块中的内容;如果条件为假,则直接跳出循环语句。实质上就是,先执行一遍循环体的内容,然后再判断。在这里,我们对循环一步步分析,最终得到的循环需要计算的表达式为sum = 0+1+2+3+4+5+6+7+8+9,两种循环得到的结果是一样的,但是执行的顺序有所差别,主要就是do...while循环语句会首先执行一遍循环体内的程序,再判断条件。
3.for循环
for循环相对于while循环,语法稍微麻烦一点,但是for循环相比来说更加灵活。让我们来看一个for循环的栗子,同样执行的是0+1+2+3+4+5+6+7+8+9
#include <stdio.h> int main(void) { int i,sum; for(i=0;i<10;i++) { sum+=i; } printf("sum=%d\\r\\n",sum); return 0; }for循环的格式是: for(循环初始操作;循环条件判断;每次循环结束操作){循环体}
for循环中,有三个操作,
第一个为循环初始操作,就是说,你在循环开始的时候,需要执行什么语句。
第二个操作为循环判断条件,只有满足你设定的某个条件的时候,才会退出循环语句。
第三个操作为每次循环结束操作,这个指的是,程序每次执行完一次后,将执行什么操作。
在这里,循环初始操作是给i赋值0,循环判断条件是i>=10的时候退出循环,每次循环体执行一次后,在执行一次i++,让i自增1;
这个for循环,同样达到了计算sum = 0+1+2+3+4+5+6+7+8+9的目的。
三种循环语句各有其特色,务必要牢牢掌握三种循环语句的语法结构,另外,还要学会如何构造循环,让我们的程序代码更加简洁,不过大家不用担心,在后面,我们有大量的练习帮助你快速掌握构造循环。学习编程语言,没有什么诀窍,只有不断地练习,熟能生巧。
四、循环控制语句
在C语言中,除了用循环变量控制循环的顺序,还有几个循环控制语句可以用来改变循环的执行结构。
1.break语句
break语句,用于直接跳出整个循环体。我们来看一个栗子。
#include <stdio.h> int main(void) { int sum=0,i=0; while(1) { sum+=i; i++; if(sum>100) { break; } } printf("sum=%d\\r\\n",sum); return 0; }在这个例子中,我们的while的判断条件一直是1,所以这是一个死循环,程序不可能会退出这个循环。但是,在循环语句中,我们存在一个条件,如果sum的值大于100的时候,我们执行break语句。由于break语句可以退出整个循环,sum满足条件的时候,仍然可以正常退出while循环。这并没有构成死循环。
2.continue语句
continue语句用于跳出当前的循环体,直接开始下一次循环。同样,我们举一个栗子来看
#include <stdio.h> int main(void) { int sum,i; for(i=0;i<10;i++) { if(i==6||i==8) { continue; } sum+=i; } return 0; }这个程序同样是我们刚刚执行的sum = 0+1+2+3+4+5+6+7+8+9的程序,但是在这里我们有一个条件判断,那就是当i等于6或者i等于8的时候,执行了continue语句。我们刚刚说了,continue语句是跳过当前的循环体,直接开始下一次循环,所以,i=6和i=8的时候,不会执行累加程序。此处,我们计算的sum = 0+1+2+3+4+5+7+9
3.goto语句
goto语句,可以随意跳转到程序的某个地方,但是需要先给程序进行一个标记,但是我们不建议使用,因为这样会打乱程序的结构,使得程序的可读性变差,但有的时候也可以使用,但是尽量少用或者不用,goto语句完全可以使用其他的方式实现。让我们来看一个使用例子。
#include <stdio.h> int main(void) { int sum=0,i=0; for(;;i++) { sum+=i; if(sum>=100) { goto designer; } } designer: printf("sum=%d\\r\\n",sum); return 0; }上述程序中体现了goto的用法,for循环中,执行的是从0开始累加的操作,如果sum大于等于100,则执行goto语句,跳转到designer标号处执行程序,打印出sum的值。这就是goto的用法,在使用之前,需要在程序段中定义一个标号,然后用goto语句进行跳转。正如我们上面说的,goto语句会打乱程序执行的顺序,使得程序的可读性变差,不建议使用goto语句。
这就是我们这节课讲的内容,C语言的三大程序结构,希望各位勤加练习,牢牢掌握基础语法在后面才能融会贯通,学习更加轻松。
版权声明:本文标题:(二)零基础入门C语言 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686898266a115849.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论