2016-03-29 31 views
5

Bu post numaralı telefonu okudum. Ancak, aşağıdaki beyanın anlamını alamadım.C++ Çok boyutlu dizi indeksleme

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

    Accessing 1: jimmy[n][m] 

Declaration 2: int jimmy [HEIGHT * WIDTH]; 


Accessing 2: jimmy[n*WIDTH+m] 

Bildirgesi 1 ve 1 erişen ve Beyanı 2 ve 2 erişen src aynıdır:

Bunu beyan düşünelim. Bununla birlikte, jimmy [n, m] anlamı nedir? Bana adresi verdiği kodu yazdım. Herhangi bir yararlı bilgi alınamadı. Birisi ne anlama geliyor?

+2

See anlamına yazdırmak olacaktır: [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

[Comma Operator nasıl çalışır?] (http://stackoverflow.com/q/54142/ 995714), [Virgül operatörünün doğru kullanımı nedir?] (Http://stackoverflow.com/q/17902992/995714), [Comma Operator'ı Ne Zaman Aşırı Yükleyebilirim?] (Http://stackoverflow.com/q/5602112/995714) –

cevap

8

C++, soldaki şeyi değerlendiren bir virgül operatörüne sahiptir, dönüş değerini atar ve sonra sağdaki şeyleri değerlendirir.

Sen

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

(http://ideone.com/hpQxWI bakınız) yazabilirsiniz ve 4.

Yani

jimmy[n,m] 

da

jimmy[m]