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

 我来答
百度网友e49baf9229
2023-06-26
知道答主
回答量:49
采纳率:0%
帮助的人:2万
展开全部

在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。在这种情况下,上述解释与您给出的结果一致。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式