2016-03-29 16 views
5

Przeczytałem to post. Jednak nie mogłem zrozumieć znaczenia następnej deklaracji.C++ Indeksowanie wielowymiarowych tablic

Powiedzmy Oświadczam to:

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

    Accessing 1: jimmy[n][m] 

Declaration 2: int jimmy [HEIGHT * WIDTH]; 


Accessing 2: jimmy[n*WIDTH+m] 

Deklaracja 1 i uzyskiwania dostępu 1 i 2 oraz deklaracja dostępu 2 są takie same src.

Co jednak oznacza jimmy [n, m]? Napisałem kod, który podał mi adres. Nie mogłem uzyskać żadnych przydatnych informacji. Czy ktoś może powiedzieć, co to znaczy?

+2

zobacz także: [wiki] (https://en.wikipedia.org/wiki/Comma_o perator) [cppref] (http://en.cppreference.com/w/cpp/language/operator_other#Built-in_comma_operator) – Drop

+0

[Jak działa operator przecinania] (http://stackoverflow.com/q/54142/ 995714), [Jakie jest właściwe korzystanie z operatora przecinkowego?] (Http://stackoverflow.com/q/17902992/995714), [Kiedy przeciążać operatora przecinania?] (Http://stackoverflow.com/q/5602112/995714) –

Odpowiedz

8

C++ ma operatora przecinkowego, który ocenia rzecz po lewej stronie, odrzuca wartość zwracaną, a następnie ocenia rzecz na prawo.

można napisać (patrz http://ideone.com/hpQxWI)

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

i chcesz wydrukować 4.

Więc

jimmy[n,m] 

oznacza

jimmy[m] 
Powiązane problemy