当我写这个 C 代码时,我正在随便编码:
#include <stdio.h>
int main()
{
int i;
i = 10;
printf("i : %d\n",i);
printf("sizeof(i++) is: %d\n",sizeof(i++));
printf("i : %d\n",i);
return 0;
}
当我运行代码时,我得到的结果是,
i : 10
sizeof(i++) is: 4
i : 10
我对这个结果感到困惑,因为我预计 sizeof 运算符中的 i++ 会增加 i。但似乎不是。所以出于好奇,我编写了以下程序:
#include <stdio.h>
int add(int i)
{
int a = i + 2;
return 4;
}
int main()
{
int i;
i = 10;
printf("i : %d\n",i);
printf("sizeof(i++) is: %d\n",add(i++));
printf("i : %d\n",i);
return 0;
}
对于这个程序,输出是:
i : 10
sizeof(i++) is: 4
i : 11
现在我越来越困惑了。
对不起,如果这是一个菜鸟问题(我是),但我什至不明白如何用谷歌搜索这样的问题!
为什么这两个程序中 i 的值不同?请帮忙!