我知道像x++或函数调用这样的表达式不会在 sizeof 运算符中计算。
当我运行下面的代码时,我得到了4 8 8输出。有人可以向我解释第 6、7、8 行实际发生了什么吗?
#include <stdio.h>
int main()
{
int x=10;
double y=10.0;
printf("%d ",sizeof (x=x+y));
printf("%d ",sizeof (y=x+y));
printf("%d ",sizeof (x+y));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我发现如果表达式=隐式地(如预增量)或显式地(如x=x+y)包含赋值运算符,则表达式不会在sizeof运算符中求值。
我对吗?