#include <stdio.h>
int main(){
int a;
a = 3;
printf("%ld,", sizeof(a = 666));
printf("%d", a);
return 0;
}
这个的输出结果为啥是4,3而不是4,666呢?
Sizeof不会执行表达式中的内容,但是会判断表达式最终的结果数据类型。比如=,sizeof不会去执行赋值动作,但是会判断赋值后的结果数据类型,同理==也是。
sizeof()里的赋值不会被实际作用
或者说还有其他和此类似的情况吗?
不知道你这个问题是否已经解决, 如果还没有解决的话: