A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 37°天黑 中级黑马   /  2015-4-10 21:22  /  1091 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=10;
a=a++;
printf("%d\n",a);
输出值为什么是10?

7 个回复

倒序浏览
输出值 是11 吧 。。
回复 使用道具 举报
a++表达式的值赋予了a
回复 使用道具 举报
你可以这样理解:++自增运算符的优先级高于赋值运算符=,a++的意思是把a的值10放到这里,接着运行a++,a的值是11.而表达式a++的值是10,由重新赋值给a.整个过程就是a的值先由a++改变为11,又被表达式a++赋值为10.所以a的值是10.编译的过程中会有警告!说a被重复赋值!
回复 使用道具 举报
谷飞飞 来自手机 中级黑马 2015-4-10 21:43:15
报纸
a++输出的是10   ++a是11,,一个是先加一个是后加
回复 使用道具 举报
a = a++   —>a++,是后缀型自增运算符 ,表达式取a的值后,再对a自加
回复 使用道具 举报
自增有两种,一种先取值,作为表达式的值,然后再加一作为a的值,另一种是先让a加一,再取出a的值作为表达式的值
回复 使用道具 举报
a++是先计算再自增,++a是先自增后计算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马