c语言基础—运算符和语句

来源:互联网 发布:软件行业就业方向 编辑:程序博客网 时间:2024/05/01 01:51

语句是构成程序的基本,一个语句就是一条完整的指令(可能包含多个指令)。C中以’;’来表示一个语句的结束。语句的基本形式是:

                            表达式;

其中表达式是由运算符和操作数组合构成。其中操作数可以是常量或变量或两者组合成的子表达式。表达式也可为空,但没实际意义。

1、  运算符

C中有多种运算符,可对数据进行操作。

1.1赋值运算符:=

赋值运算符’=’。在c中=不表示“相等”的意思,而是对’=’左边的操作数进行赋值。

如 :      

                   inta = 1;          //=表示对a赋值为1。

‘=’左边的操作数必须是一个可改变的值。即’=’将其右边的值赋给左边的操作数。赋值从右到左进行,可以这么用:

                   int a,b,c;

                   a = b = c =1;

则第二条语句无错。表示将1赋值给c将c的值赋给b,将b的值赋给c。

1.2、算术运算符:+ ,-,*,/,%

分别表示加,减,乘除,取模,都是二元运算符,即涉及两个操作数。需要注意的是,对两个不同类型的数据进行算术运算时,返回的数据类型为范围大的那个数据类型。

1.3、符号运算符:+,-

当+,-表示符号的时候,是一元运算符,表示改变一个值的代数符号(一般只用到-)。

                            如:

                                     inta = 1 ;

                                     intb = -a;

1.4、自加,自减运算符:++,- -

自加,自减也为一元运算符,表示对一个操作数自身加1。按运算符位置的不同分为前缀(符号在操作数之前)和后缀(符号在操作数之后)两种,会得到不同的结果

         如:

                   int a = 1,b= 1;

                   int c = a++;

int d = ++b;

执行上述语句后得到a为2,b为2,c为2,d为1。即前缀式在语句执行完才对操作数进行操作,后缀式先对操作数进行操作。

1.5、关系运算符:>,>=,<,<=,==,!=

                   关系运算符为二元运算符,返回值为1(真)或0(假)。其中:

                  

符号

说明

例子

大于

1 > 2 为假,值为  0

>=

大于等于

2 >= 2 为真,值为1

小于

1 < 2  为真,值为1

<=

小于等于

1 <= 2 为真,值为1

==

等于

1 == 2 为假,值为1

!=

不等于

1 != 2 为真,值为1

1.6、逻辑运算符:&&,||,~

                   逻辑运算符与(&&),或(||)为二元运算符,非(~)为一元运算符

1.7、条件运算符

                   条件运算符有三个操作数。

格式:

                                     表达式1 ? 表达式2 :表达式3

含义:当表达式1为真时,整个表达式的值为表达式2的值,当表达式1为假时,整个表达式值为表达式3的值。即表达式1在这里起一个选择的作用。

1.8、运算符的优先级

当同一个表达式中出现多个运算符时,程序是按照什么顺序执行运算的呢?这涉及到运算符的优先级。

()可以改变运算符的优先级,即()内的操作优先执行。当对运算符的优先级不太清楚时,使用()可以更保险一点。

如:        

         int a = 1 + 2 *3;//得到a = 7

         int b = (1 + 2) * 3;//得到a = 9

1.9、复合赋值运算符:+=,-=,*=,/=,%=

复合赋值运算符是一种简化的写法。其作用是将运算符左值(左边的操作数)与右值进行算术运算后的值赋给运算符左值。

                   如:

                            inta = 1;

                            a+= 3;

                   第二个语句执行前a的值为1,执行后a的值为啊原来的值加3,即a的值变为4。

2、  语句

C语言的语句除了如上文提到的空语句,表达式语句外还有一些控制语句,提高一些智能的操作。控制语句分为分支与跳转语句if,if else,switch,goto和循环语句for,while,do。

2.1分支调整语句

2.1.1 if 语句

                   基本格式:

                                     if(表达式1) {

                                               代码块;

                                     }

                   当执行表达式1的结果为真时执行代码块的语句。当代码块只有一条语句可以忽略{}。

2.1.2 if else语句

                   基本格式:

                                     if(表达式1) {

                                               代码块1;

                                     }else{

                                               代码块2;

                                     }

当执行表达式1的结果为真时执行代码块1的语句;结果为假时执行代码块2的语句。此外还有多个判断的格式:

                                     if(表达式1) {

                                               代码块1;

                                     }elseif (表达式2){

                                               代码块2;

                                     }else{

                                               代码块3;

                                     }

可以嵌入多个else if,程序按顺序执行下来,当某个表达式为真时,则执行相应的代码块。

2.1.3、switch语句

         当需要对同一个表达式进行多个判断的时候可以使用switch。

         基本格式:

                            switch(表达式1) {

                                     case结果1:

代码块1;

break;

                                     case结果2:

代码块2;

break;

                                     …

                                     case结果n:

代码块n;

break;

                                     default:

                                                                 代码块n+1;

                                                                 break;

                            }

说明:执行表达式1得到的值对应哪个结果则执行相应代码块,当不包含在结果中时,执行default。每个case需要加break;推出。switch的机制只是将程序跳转到相应的case那里,无法自己退出,当无break时,下一个case的代码块仍会被执行。

2.1.4、goto语句

                   基本格式:

                            goto标签1;

则程序会跳转到标签1的那一行。因此如果使用goto需要在要跳转到的那个位置加一个标签, 格式为“标签名:”。由于goto的跳转使程序变得混乱,一般避免使用。

2.2 循环语句

2.2.1、for循环语句

                  基本格式:

                                     for(表达式1;表达式2;表达式3) {

                                               代码块;

                                     }

                   表达式1为初始化部分,在开始循环时执行一次;

                   表达式2为条件部分, 在每次循环的开始阶段,执行表达式2,结果为真时执行

循环,为假时循环结束;

                   表达式3为调整部分,在每次循环结束后,执行一次。

                   代码块为循环体,每次循环执行一次。一般由{}包含,当代码块只有一条语句时可

省略{}。

                            例:

                                     inti,sum = 0;

                                     for(i= 0; i <10; i ++) {

                                               sum ++;

                                     }

说明:循环的开始,执行i=0;将i赋值为0,判断条件 i < 10为真,执行循环 sum++,循环结束执行调整 i++;第二个循环开始时i = 1,条件 i < 10 为真,执行循环……当调整i++得到I = 10时,条件 i < 10为假循环结束。此时sum的值为0到9的累加。

2.2.2、while循环语句

                   基本格式:

                                     while(表达式1){

                                     代码块;

                                     }

每次循环开始之前先执行表达式1,结果为真时,执行循环,为假时退出循环。需要注意的是要控制循环的退出,避免死循环。

2.2.3、do while循环语句

                   基本格式:

                                     do{

                                     代码块;

                                     }while(表达式)

与while循环语句类似。只是把表达式的执行放到了循环后面。即此循环至少执行一次。

2.2.4、continue,break语句

对循环语句,可以在其代码块中加入两种语句来终止或跳过循环。continue语句,当在循环中执行到此语句时,程序中断本次循环,执行下一次循环。break语句,当在循环中执行到此语句时,程序跳出循环。如果循环1内嵌在循环2中时,循环1包含continue或break语句,当语句执行时,只能影响到循环1。

                   这两种语句的用法一般配合if语句使用,用来作为跳出循环的判断。

原创粉丝点击