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

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

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

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

  • 写回答

3条回答 默认 最新

  • a5156520 2023-01-29 06: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月10日
  • 已采纳回答 2月3日
  • 创建了问题 1月28日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部