C语言运算符优先级与短路运算示例:m=n=1, (m=a>b)&&(n=c>d) 中 n 的值
C语言运算符优先级与短路运算示例:m=n=1, (m=a>b)&&(n=c>d) 中 n 的值
本例中,我们定义了 a=1, b=2, c=3, d=4, m=n=1,然后执行表达式 (m=a>b)&&(n=c>d)。
分析
- 首先,根据运算符优先级,
a>b和c>d首先执行。 a>b为假,结果为 0,c>d为假,结果为 0。m=0和n=0分别执行,将 m 和 n 赋值为 0。- 由于第一个表达式
m=a>b为假,根据短路运算的规则,第二个表达式n=c>d不会被执行。 - 因此,最终 n 的值为 0。
结论
在 C 语言中,逻辑运算符 && 和 || 存在短路运算。当 && 左边的表达式为假时,右边的表达式不会被执行。在这个例子中,由于 a>b 为假,导致 n=c>d 不会执行,最终 n 保持初始值 0。
原文地址: https://www.cveoy.top/t/topic/oYE5 著作权归作者所有。请勿转载和采集!