2016-03-29 3 views
5

Я прочел это post. Однако я не мог понять значение для следующего объявления.C++ Индексирование многомерных массивов

Допустим, я объявляю:

Declaration 1: int jimmy [HEIGHT][WIDTH]; 

    Accessing 1: jimmy[n][m] 

Declaration 2: int jimmy [HEIGHT * WIDTH]; 


Accessing 2: jimmy[n*WIDTH+m] 

Декларация 1 и доступа 1 и 2 Декларация и доступ к 2 являются одинаковыми src.

Однако, что означает jimmy [n, m]? Я написал код, который он мне дает. Не могли получить полезную информацию. Может кто-нибудь сказать, что это значит?

+2

Смотри также: [вики] (https://en.wikipedia.org/wiki/Comma_o perator) [cppref] (http://en.cppreference.com/w/cpp/language/operator_other#Built-in_comma_operator) – Drop

+0

[Как работает Comma Operator] (http://stackoverflow.com/q/54142/ 995714), [Что такое правильное использование оператора запятой?] (Http://stackoverflow.com/q/17902992/995714), [Когда перегружать оператор-запятую?] (Http://stackoverflow.com/q/5602112/995714) –

ответ

8

У C++ есть оператор запятой, который оценивает вещь слева, отбрасывает возвращаемое значение и затем оценивает предмет справа.

Вы могли бы написать (см http://ideone.com/hpQxWI)

int i = (1, 2, 3, 4); 
std::cout << i; 

и вы бы распечатать 4.

Так

jimmy[n,m] 

означает

jimmy[m] 
Смежные вопросы