我有兴趣知道C中多维数组的行为增加如下:
int x[10][10];
y = x[++i, ++j];
我知道这是错误的方式。我只想知道编译器在这种情况下做了什么,如果程序员在他的代码中执行此操作将会产生什么后果。
答案 0 :(得分:6)
这是逗号运算符,被误用了。 ++i, ++j
会产生j + 1
的值,并产生2个副作用(修改i
和j
)。整件事基本上就是++i; y = x[++j]
。哪个有效或无效,具体取决于y
的类型。
如果程序员在他的代码中执行此操作将会产生什么后果
嗯,很可能其他程序员会给他/她杀气腾腾的外表。