使用C中括号内的逗号分隔值进行赋值

时间:2016-12-19 07:25:27

标签: c

int a = (1, 2, 5);
printf("a=%d\n", a);

在C中,这将打印5。

有人可以解释为什么要打印5以及这种语法在哪种情况下使用?

2 个答案:

答案 0 :(得分:1)

C中的逗号运算符是一个序列点,这意味着用逗号分隔的表达式从左到右执行。整个表达式的值是最右边的表达式的值,在你的情况5中,它被赋值给变量p。

答案 1 :(得分:0)

C中的逗号运算符具有最低优先级,即它具有最低优先级,因此最终会对其进行评估。
当在表达式中使用多个逗号运算符时,逗号运算符返回最右侧操作数的值。