int a[4][3] = {{5, 3, 7}, {6, 8, 7}, {5, 9, 3}, {7, 5, 9}};
int i, j;
void main() {
for (i = 0; i < 12; i++) {
j = a[i / 3][i % 3];
a[j / 3][j % 3] = j;
}
printf("%d", a[2][0] + a[2][1] + a[2][2]);
}
Yukarıdaki C programı çalıştırıldığında printf fonksiyonunun üreteceği konsol çıktısı ne olur?
öncelikle iki boyutlu diziyi yan yana dizip tek boyutluymuş gibi düşünelim. Bu tek boyutlu dizinin elemanları sırayla taranıyor, her elemanın tarandığı anda değerini j değişkenine veriyoruz, sonrasında dizideki j. sayının (dizi indexi 0’dan başlıyor) değeri dizideki indexine eşit oluyor. Mesela dizinin ilk elemanı 5, bu durumda dizinin indexi 5 olan elemanının değeri 7 iken 5 oluyor. Bu şekilde işlem devam ediyor. İşlem sonunda dizi {{5,3,7}, {3,8,5}, {5,7,8}, {10,5,9}} oluyor. Konsol çıktısında dizinin 3. sütunundaki sayıların toplamı isteniyor. Bu işlem bittiğinde bu sütundaki sayılar 5,7,8 oluyor ve toplayınca sonuç 20 çıkıyor.