【问题标题】:how does || work ,in if(++abc||++xyz) which one is gonna get incremented abc or xyz [duplicate]怎么样||工作,在 if(++abc||++xyz) 中,哪个会增加 abc 或 xyz [重复]
【发布时间】:2020-01-13 21:33:56
【问题描述】:

|| 如何在 c 中工作,例如:++abc||++xyz 输出?

int abc = 50, xyz = 100;

if (++abc || ++xyz)
     printf("%d %d",abc, xyz);
else
     printf("Chitkara University");

【问题讨论】:

  • || 基本意思是OR 而你使用的方式是错误的
  • abc 递增,然后可能是xyz
  • ++abc OR ++xyz 听起来像一个条件吗??
  • 你试过运行这个吗?它打印了什么?您希望打印什么?

标签: c


【解决方案1】:

这基本上等同于:

int abc = 50, xyz = 100;
abc = abc + 1;
if (abc != 0) {
    printf("%d %d", abc, xyz);
} else {
    xyz = xyz + 1;
    if (xyz != 0) {
        printf("%d %d",abc, xyz);
    }
    else {
        printf("Chitkara University");
    }
}

++var 是一个预增量。这意味着变量递增,然后在if 条件表达式中使用它的值。但是因为|| 是一个短路逻辑运算符,所以如果第一个表达式为假,它只会执行第二个表达式。所以xyz 只有在增加abc 的结果为0 时才会增加和测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2021-08-23
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多