int i=(j=4,k=8,l=16,m=32); printf(“%d”, i);该语句的输出结果是多少?

来源:百度知道 编辑:UC知道 时间:2024/06/15 17:01:47
望高手不吝赐教,解释一下这个!!!先谢啦!

32
当一个语句是由多个被逗号运算符隔开的表达式组成时,此语句的值为最后一个表达式的值。

输出结果是32

这种写法很乱且很不好,不建议这样写

首先
int i=(j=4);
等同于:
int j = 4;
int i = j;

而int i=(j=4,k=8,l=16,m=32);
则等同于:
int j=4, k=8, l=16, m=32;
int i = j;
int i = k;
int i = l;
int i = m;

z最后i = m =32,故输出为32

32
逗号表达式,
从左到右进行,依次赋值,以最后的表达式为准。

32
因为是逗号表达式。
所以,I的值取最右边的。

32