Неправильное увеличение переменных многомерного массива в C


Мне любопытно узнать поведение, в C, многомерного массива, увеличенного, как показано ниже:

int x[10][10];

y = x[++i, ++j];

Я знаю, что это неправильный путь. Я просто хочу знать, что делает компилятор в этом случае и каковы будут последствия, если программист сделает это в своем коде.

1 2

1 ответ:

Это оператор запятой, неправильно используемый. ++i, ++j дает значение j + 1 и имеет 2 побочных эффекта (Модификация i и j). Все это в основном означает ++i; y = x[++j]. Который будет работать или нет, в зависимости от типа y.

Каковы будут последствия, если программист сделает это в своем коде

Ну, скорее всего, другие программисты будут бросать на него убийственные взгляды.