int main(){
int d[ ][3][2]={4,5,6,7,8,9,10,11,12,13,14,15,16};
int i=-1;
int j;
j=d[i++][++i][++i];
printf("%d",j);
return 0;
}
İki sorum var:
- Derleyici yukarıdaki üç boyutlu d dizisini d[2][3][2] olarak alıyor yani 12 elemanlı bir dizi olarak kabul ediyor ama 13 tane sayı yazdım son sayı boşta mı kalıyor?
- j=d[i++][++i][++i]; işleminde i=-1 olduğu için j=d[-1][1][2] olmaz mı ama j=d[0][0][0] yani 4 olarak kabul ediyor ve 4 basıyor. Niye böyle kabul ettiğini anlamak için aşağıdaki programı yazdım:
int c[2][2]={9,1,2,3};
int i=-1,a;
a=c[i++][++i];
printf("%d",a);
Bu sefer direkt 0 bastı -1. indexi kabul etmedi. Ama yukarıda niye 4 basıyor?
int c[2][2]={9,1,2,3};
int i=-1,a;
a=c[++i][++i]; //tek fark i++ yerine ++i yazmam
printf("%d",a);
Bu sefer ise a=c[1][1] aldı 3 bastı ama a=[0][1] olmaz mı?
Cevaplarsanız sevinirim şimdiden teşekkürler