程序: main() { int p,a=5; if(p=a!=0) printf("%d\n",p); else printf("%d\n",p+2); 输出

请说下,程序: main() { int p,a=5; if(p=a!=0) printf("%d\n",p); else printf("%d\n",p+2); 输出结果怎么是1?
最新回答
殇情

2024-06-11 00:01:11

main() 

    int p,a=5;
    if(p=a!=0) //注意此处,运算顺序为p=(a!=0),a!=0运算为1,相当于p=1;
                    //应当注意不要将赋值=与逻辑判断==混淆
        printf("%d\n",p); 
    else 
        printf("%d\n",p+2);
 }
三天三夜,三斤作业

2024-06-11 00:14:39

优先级的问题if(p=a!=0) printf("%d\n",p)
if(p=(a!=0))
a != 0 的
返回值
是1;
这个看汇编就知道了
所以p就等于1了