C语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)为什么结果是3,3,0,0?

   更新日期:2024.05.17

在C语言中,赋值运算符(=)和相等运算符(==)具有不同的优先级和结合性。以下是对您提到的表达式的解释:

  • a = b = c:这是一个连续赋值的表达式。首先,c的值被赋给b,然后b的值(现在等于c)被赋给a。假设c的值为3,那么a和b的值都将被设置为3。

  • a = b == c:这是一个赋值和相等运算符的组合表达式。由于相等运算符(==)的优先级高于赋值运算符(=),所以首先计算b == c。如果b和c相等,则表达式的结果为1,否则为0。然后,将这个结果赋给a。假设b和c的值都为3,那么a的值将被设置为1。

  • a == (b = c):这是一个赋值和相等运算符的组合表达式。首先,将c的值赋给b,然后比较a和b的值。如果a和b相等,则表达式的结果为1,否则为0。假设a、b和c的值都为3,那么表达式的结果将为1。

  • a == (b == c):这是一个相等运算符的嵌套表达式。首先,计算b == c。如果b和c相等,则表达式的结果为1,否则为0。然后,比较a和这个结果。如果a等于这个结果,则表达式的结果为1,否则为0。假设a、b和c的值都为3,那么表达式的结果将为0,因为a(3)不等于b == c的结果(1)。

  • 根据您给出的结果(3,3,0,0),我猜测a、b和c的初始值可能分别为0、3和3。在这种情况下,上述解释与您给出的结果一致。



  • 13514324392 :C语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)为什么结果是3,3,0,0?
    厉侍顾1762 :答:a == (b == c):这是一个相等运算符的嵌套表达式。首先,计算b == c。如果b和c相等,则表达式的结果为1,否则为0。然后,比较a和这个结果。如果a等于这个结果,则表达式的结果为1,否则为0。假设a、b和c的值都为3,那么表达式的结果将为0,因为a(3)不等于b == c的结果(1)。根据您...
  • 13514324392 :C语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别
    厉侍顾1762 :答:C语言和其他语言不同,在其他语言中,一般不区分 赋值操作符 与 等于 运算符,但是C语言很区分。= 是赋值 == 是等于运算 也就是说,a=b=c, 是一个表达式,运行到这里时,将a的值赋给b、c,运行完后abc的值相等;a=b==c,是一个复合表达式,先将a的值赋给b,然后与c比较,如果相等则返...
  • 13514324392 :C语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别
    厉侍顾1762 :答:明显不等,所以b==c的值是0,然后a是1,和0又不等,所以整个式子值为0;第二步为倒数第二个,a==(b=c),先将c赋给b,此时b和c都为3,再判断a与b是否相等,a为1,不等,整个式子为0;第三步:a=b==c,经过上一步,
  • 13514324392 :在c语言中a==b==c与a==b,b==c有区别吗?
    厉侍顾1762 :答:这个太有区别了!a==b==c 是一个关系表达式,由于运算符"=="具有左结合性,故其运算顺序是:((a==b) ==c )若a=5,b=5,c=5,则a==b的值为1,而1==c的结果为0 a==b,b==c是分别判断a和b以及b和c关系运算 补充,楼上说a==b==c是先执行b==c是错误的,因为C语言中只有赋值...
  • 13514324392 :C语言a=b==c怎么运算的
    厉侍顾1762 :答:其实就是运算符优先级问题 =运算符优先级很低,先进行b==c运算,判断b是否等于c,是,结果为1,不是,结果为0,后进行=的运算,把b==c的运算结果(1或0)赋给a,所以a结果是1或0 对于a=b=c;=是从右至左的运算符,所以先进行b=c,把c值赋给b,再进行a=b,把b的值赋给a。
  • 13514324392 :C语言中的a=b=c何解???
    厉侍顾1762 :答:将c赋值给b,再将b赋值给a!也就是说——a b c中的值是一样的!将其分解就是楼上的:b=c;a=b;
  • 13514324392 :c语言中a= b= c的区别是什么?
    厉侍顾1762 :答:一、a==b>c和a==(b>c)是一样的表达方式,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1。1、若为真,a为1则该表达式为真,即该符合表达式的值为1。2、若为假,a不为0则该表达式为假,即该符合表达式的值为0。二、a=b>c和a=(b>c)是一样的表达方式,先...
  • 13514324392 :c语言a=b=c,a的值是不是与b c的值一样
    厉侍顾1762 :答:在c语言中,a=b=c,相当于把c的值,赋值到a,b,中,所以a的值只有c 相同,希望回答对你有帮助
  • 13514324392 :C语言中 a=b==c怎么理解
    厉侍顾1762 :答:“=”是赋值符,把c的值赋给b赋给a,最后a、b、c的值都相等,“==”是判断符;=赋值==等于运算说a=b=c,表达式运行a值赋给b、c运行完abc值相等;a=b==c,复合表达式先a值赋给b与c比较相等则返0,否则返非零值;运算b==c,若b与c相等,那么得出的值为1。
  • 13514324392 :c 中a=b b=c c=a是什么意思
    厉侍顾1762 :答:在C语言中,a=b b=c c=a这样的语句常被用于排序算法。比如冒泡排序法中,每相邻两个元素之间的大小比较,就需要临时变量来保存它们的值。若使用a=b b=c c=a,则不必再声明额外的变量,直接通过赋值语句来实现。这样可以大大简化排序算法的代码量,提高程序的效率。此外,a=b b=c c=a也可以...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网