【发布时间】:2020-02-15 00:24:03
【问题描述】:
我想知道a[3] = (a[1], a[2]); 在下面的代码中做了什么。它返回a[3] = 0。如果我去掉括号,a[3] = a[1] 和a[2] 不会改变它的值。
谢谢!
#include <stdio.h>
int main(int argc, char ** argv) {
int a[4] = { 100, 200 };
a[3] = (a[1], a[2]); // What happens here?
printf("%d %d %d %d\n", a[0], a[1], a[2], a[3]);
return 0;
}
【问题讨论】:
-
a[3]没有改变它的值,它在初始化时被赋予了0 -
我以前没有见过这样的表达式...显然 a[3] 不是元组或集合,那么这里括号的功能是什么?谢谢!
-
a[3]分配给括号中的最后一个未使用的第一个值是 0,因为a[2]是 0
标签: c99