企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 自增运算符 ### 自增、自减运算符介绍 - 在程序设计中,经常遇到“i=i+1”和“i=i-1”这两种极为常用的操作。C语言为这种操作􏰁 供了两个更为简洁的运算符,即++和--,分别叫做自增运算符和自减运算符。它们是单目运算 符,是从右向左结合的算术运算符。 ### 自增、自减运算符求值过程 - 前缀表达式:++x, --x; 其中x表示变量名,先完成变量的自增自减1运算,再用x的值作为表 达式的值;即“先变后用”,也就是变量的值先变,再用变量的值参与运算。 - 后缀表达式:x++, x--; 先用x的当前值作为表达式的值,再进行自增自减1运算。即“先用 后变”,也就是先用变量的值参与运算,变量的值再进行自增自减变化。 |int num = 3||| |--|--|--| ||++a|a++| |表达式值|4|3| |变量num值|4|4| + a++ 或者 ++a 都是表达式, 表达式是有返回值的 + 表达式的值和变量的值不是一回事 + a++ 或者 ++a表达式的值就是变量a的值 ``` int a = 1; int b = 100; printf("a++ = %d\n", a++);// 先使用后操作 printf("a = %d\n", a);// 操作之后 printf("++a = %d\n", ++a);// 先操作, 后使用 b *= ++a; // 先操作, 后使用; 相当于 b *= 4 printf("a = %d\n", a); printf("b = %d\n", b); ``` - 练习 ``` i=1; i++; j = i++ ; j =++i ; j = i--; ``` > 注意 ``` 自增、自减运算只能用于单个变量,只要是标准类型的变量,不管是整型、实型,还是字符型 变量等,但不能用于表达式或常量。如:++(a+b), 与5++, const int N=0; N++; 等都是错误 的。 而i+++j++、++i+(++j)、++a+b++、++array[--j]等,这些都是合法的。 ``` --- ### 练习 ``` int i = 5, j = 5, p, q; // 5 6 7 p=i++ + i++ + i++; // p = (i++) + (i++) + (i++) // 6 7 8 q = ++j + ++j+ ++j;// q = (++j) + (++j) + (++j) printf("%d,%d,%d,%d",p,q,i,j); ``` > 输出: 18,21,8,8 > 注意: ++, -- 优先级是2级(较高) > ++, -- 结合性是右结合性