错误的多维数组变量在C中增加
我很想知道一个多维数组的行为,用C表示,如下所示:错误的多维数组变量在C中增加,c,multidimensional-array,comma,comma-operator,C,Multidimensional Array,Comma,Comma Operator,我很想知道一个多维数组的行为,用C表示,如下所示: int x[10][10]; y = x[++i, ++j]; 我知道那是错误的方法。我只想知道编译器在这种情况下会做什么,如果程序员在代码中这样做会产生什么后果。这是逗号运算符,被误用了++i,++j产生j+1的值,并有2个副作用(修改i和j)。整个东西基本上就是++i;y=x[++j]。根据y的类型,该选项是否有效 如果程序员在代码中这样做,会有什么后果 嗯,很可能其他程序员会给他/她凶残的表情。ahahahah。第二个问题的答案很好+
int x[10][10];
y = x[++i, ++j];
我知道那是错误的方法。我只想知道编译器在这种情况下会做什么,如果程序员在代码中这样做会产生什么后果。这是逗号运算符,被误用了
++i,++j
产生j+1
的值,并有2个副作用(修改i
和j
)。整个东西基本上就是++i;y=x[++j]
。根据y
的类型,该选项是否有效
如果程序员在代码中这样做,会有什么后果
嗯,很可能其他程序员会给他/她凶残的表情。ahahahah。第二个问题的答案很好+1!! ;)我只是不明白一件事:我在这个例子中消失了+@Kyrol它没有消失。它仍然被执行(您可以在之后检查
i
),但其值被丢弃。在C中,每个表达式都有副作用并产生一个值。恰好在这种情况下,生成的值不依赖于i
。但副作用是存在的。