廊坊金亨木业:c语言(问题)

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 10:59:37
#include<stdio.h>
void main()
{
int temp=10;
printf("%d",temp++);
temp++;
printf("%d",temp);
}
为啥答案是10,12,而不是10,11

定义时 整型temp被赋值10
然后 在printf 中 首先输出的是temp
自然是10
然后运算temp++
temp变成11
后来又一个temp++
变成12
输出12
注意++temp 和temp++
的区别

第二个temp输出的时候它已经自增了两次,所以是12了。

第一个temp++,是先将temp的值10传给printf函数,再加1;
第二个temp++则只是单独的一条语句,没有放在其它语句中参与运算,所以直接就加1了。

晕死,这个也不明白,++ 的意思是什么,不就是temp=temp+1吗,那你程序不就可以写成这样了吗/?
printf("%d",temp=temp+1);
temp=temp+1
printf("%d",temp);
当然了,第一个里边还是得考虑++放的位置的,放变量后是先取数后加一,这样一来,第二个是多少不就很明显了吗?