C 语言程序设计能力教程(第四版)
上QQ阅读APP看书,第一时间看更新

2.3.3 自增和自减运算符

【例2.9】自增运算符的应用:请分别计算出下列x,y的值。

程序段1:

扫一扫 看视频

本程序段的运行结果为:

x=5,y=6

程序段2:

本程序段的运行结果为:

x=6,y=6

上述两个程序段的运行结果之所以不同,是因为a++和++a这两种表示形式。x=a++的运算过程是先引用a值5并赋给x,然后a再自加1得到6,所以x=5;而x=++a是a先自加1得到6,然后引用a的值并赋给x,所以x=6。

相关知识3

自增(++)和自减(--)运算

作用:自增(++)运算使单个变量的值增1,自减(--)运算使单个变量的值减1。

两种运算类型:

①前置运算:++i,--i,表示先使变量的值增1或减1,再使用该变量。

②后置运算:i++,i--,表示先使用该变量参加运算,再将该变量的值增1或减1。

自增和自减运算符如表2-10所示。

注意:自增和自减运算符中的4个符号同级,且高于双目算术运算符。

说明:单独的自增和自减运算,前置和后置等价。如a++;和++a;等价,都相当于a=a+1。自增运算符(++)和自减运算符(--)只能用于变量,而不能用于常量或表达式,如5++或(a+b)++都是不合法的。它们的结合方向是“自右至左”。它们常用于后面章节的循环语句中,使循环变量自动增加1;也用于指针变量,使指针指向下一个地址。

表2-10 自增和自减运算符

思考:i=1;printf("%d",-i++);的输出结果是什么?