正确运行 2023-01-28 20:06 采纳率: 75.7%
浏览 883
已结题

表达式 (z=0, (x=2)||(z=1),z) 的值是1。

表达式 (z=0, (x=2)||(z=1),z) 的值是1。

对吗?能不能解释一下这是什么意思?

  • 写回答

3条回答 默认 最新

  • a5156520 2023-01-29 14:10
    关注

    下面是我的理解,供参考:

    运行的结果应该是0,(z=0, (x=2)||(z=1),z)这是一个逗号表达式,它是从左到右依次计算各个表达式,而最终表达式的值为最后一个表达式的值,具体分析如下:

    首先计算第一个表达式z=0,它给把z赋值为0;

    然后计算第二个表达式(x=2)||(z=1),因为||为短路或运算符,即当检查到某个条件的值为真-即一个不等于0的值后,即停止往后判断条件,所以这里执行完x=2后,第一个条件已为真, 所以后面的z=1不继续执行;

    接着计算第三个表达式,即一个z,无赋值等操作;

    最后,返回整个逗号表达式的值,即最后一个表达式z的值-0,它在第一步计算中赋值为0,所以最后整个表达式的值为0.

    测试代码如下:

    参考链接:


    #include <stdio.h>
    
    int main(void){
        
        int x,z;
        int result = (z=0, (x=2)||(z=1),z);
        printf("(z=0, (x=2)||(z=1),z)=%d\n",result);
        printf("x=%d,z=%d\n",x,z);
        
        return 0;
    } 
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月11日
  • 已采纳回答 2月3日
  • 创建了问题 1月28日