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

表达式 (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日

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序