您的位置:首页 > 编程语言 > C语言/C++

C语言细节之二 : 表达式

2010-05-22 09:14 225 查看
1、

(1)int i = 7;
printf("%d\n", i++ * i++); // 49
解释:后缀自加和自减在输出原值以后,对原变量的改变操作并不是马上接着做的。
此处就是在整个表达式都利用原值进行运算之后,才对i做两次自加
(2)int i = 7;
printf("%d\n", ++i * ++i); // 81
解释:++i后就已经把i变成8,再++i后,i变成9,
此时再把两个i(为9)的临时变量相乘得到81
(3)int i = 7;
printf("%d\n", ++i * i++); // 64
解释:++i后就已经把i变成8,再i++返回的是i的现值8,
此时再把一个i(为8)与另一个数字8相乘
(4)int i = 7;
printf("%d\n", i++ * ++i); // 64
解释:i++返回的是i的现值,而++i后就把i(还为7)变成8,所以第一个返回的是8,第二个也是8

2、 ?表达式不可以做左值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: