Неправильные переменные многомерного массива увеличиваются в C - PullRequest
2 голосов
/ 11 февраля 2012

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

int x[10][10];

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

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

1 Ответ

6 голосов
/ 11 февраля 2012

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

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

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

...