黑马程序员技术交流社区

标题: 关于++a和a++的问题 [打印本页]

作者: 37°天黑    时间: 2015-4-10 21:22
标题: 关于++a和a++的问题
int a=10;
a=a++;
printf("%d\n",a);
输出值为什么是10?
作者: 孙林    时间: 2015-4-10 21:29
输出值 是11 吧 。。
作者: 深情眸    时间: 2015-4-10 21:41
a++表达式的值赋予了a
作者: 流转少年    时间: 2015-4-10 21:42
你可以这样理解:++自增运算符的优先级高于赋值运算符=,a++的意思是把a的值10放到这里,接着运行a++,a的值是11.而表达式a++的值是10,由重新赋值给a.整个过程就是a的值先由a++改变为11,又被表达式a++赋值为10.所以a的值是10.编译的过程中会有警告!说a被重复赋值!
作者: 谷飞飞    时间: 2015-4-10 21:43
a++输出的是10   ++a是11,,一个是先加一个是后加
作者: 距离    时间: 2015-4-10 21:44
a = a++   —>a++,是后缀型自增运算符 ,表达式取a的值后,再对a自加
作者: wang619590713    时间: 2015-4-10 21:49
自增有两种,一种先取值,作为表达式的值,然后再加一作为a的值,另一种是先让a加一,再取出a的值作为表达式的值
作者: 沐浴阳光@    时间: 2015-4-13 22:05
a++是先计算再自增,++a是先自增后计算




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2