C语言基本运算符如下表:
名称 | 符号 | 说明 |
加法运算符 | + | 双目运算符,即应有两个量参与加法运算。如a+b, 4+8等。具有右结合性。 |
减法运算符 | - | 双目运算符。但“-”也可以作负值运算符,此时为单目运算,如-x,-5等具有左结合性。 |
乘法运算符 | * | 双目运算符,具有左结合性。 |
除法运算符 | / | 双目运算符,具有左结合性,参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 |
求余运算符(模运算符) | % | 双目运算符,具有左结合性,要求参与运算的量均为整型,不能应用于float或double类型。求余运算的结果等于两数相除后的余数,整除时结果为0. |
双目运算符+和-具有相同的优先级,它们的优先级比运算符*、/和%的优先级低,而运算符*、/和%的优先级又比单目运算符+(正号)和-(负号)的优先级低。
自增、自减运算符
自增1运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“--”其功能是使变量值自减1.
自增1,自减1运算符均为单目运算,都具有右结合性,可有以下几种形式:
++i:i自增后再参与其它运算。
--i:i自减后再参与其它运算。
i++:i参与后其它运算后,i的值再自减1。
i--:i参与运算后,i的值再自减1;
int main(int argc, const char * argv[]) {
// insert code here...
int i = 8; //初始化
printf("a: %d\n", i++); //输出的结果为:8
printf("b: %d\n", ++i); //输出的结果为:10
printf("c: %d\n", i--); //输出的结果为:10
printf("d: %d\n", --i); //输出的结果为:8
printf("e: %d\n", -i++); //输出的结果为:-8
printf("f: %d\n", -i--); //输出的结果为:-9
return 0;
}
- a行,i先参与运算(即printlf函数运算,输出i为:8), 然后再自增1,此行i的值为9.
- b行,i先自增1,然后再参与其它运算(即printlf函数运算,输出i为10),此行i的值为10.
- c行,i先参与其它运(即printlf函数运算,输出i为10),然后再自减为9,此行i的值为9.
- d行,i先自减1,然后参与其它运算(即printlf函数运算,输出i为8),此行i的值为8.
- e行,i先参与其它运算(即printlf函数运算,输出i为-8),然后i在自增1.此行i的值为9
- f行,i先参与其它运算(即printlf函数运算,输出i为-9),然后i在自减1,此行i的值为8.