有关=的赋值问题【C语言】


#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()里的赋值不会被实际作用

或者说还有其他和此类似的情况吗?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^