此问题已在此处有答案:
Why does sizeof(x++) not increment x?(10个答案)
14天前关闭
考虑:
#include <stdio.h>
int main()
{
int x, a = 0;
x = sizeof(a++) ? printf("Geeks for Geeks\n") : 0;
printf("Value of x:%d\n", x);
printf("Value of a:%d", a);
return 0;
}
这是密码
我希望输出结果是:
x值:16
a的值:1
但GCC编译器的输出是:
x值:16
a的值:0
1条答案
按热度按时间bvjxkvbb1#
这是因为sizeof实际上是一个运算符。这意味着在运行时不计算操作数。你可以找到一个更好的解释here。
sizeof是一个编译时操作符,它接受变量的类型。这意味着它不会评估传递给它的内容。