?? 例10.11.txt
字號:
例10.11輸出二維數組有關的值。
#define FORMAT "%D,%D\n"
main()
?。鹖nt a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf(FORMAT,a,*a);
printf(FORMAT,a[0],*(a+0));
printf(FORMAT,&a[0],&a[0][0]);
printf(FORMAT,a[1],a+1);
printf(FORMAT,&a[1][0],*(a+1)+0);
printf(FORMAT,a[2],*(a+2));
printf(FORMAT,&a[2],a+2);
printf(FORMAT,a[1][0],*(*(a+1)+0));
}
運行結果如下:
158,158(第0行首地址和0行0列元素地址)
158,158(0行0列元素地址)
158,158(0行首地址和0行0元素地址)
166,166(1行0列元素地址和1行首地址)
166,166(1行0列元素地址)
174,174(2行0列元素地址)
174,174(第2行首地址)
9,9(1行0列元素的值)
請注意,a是二維數組名,代表數組首地址,但是不能企圖用*a來得到a[0][0]的值。*a相當于*(a+0),即a[0],它是第0行地址(本次程序運行時輸出a、a[0]和*a的值都是158,都是地址。請注意:每次編譯分配的地址是不同的)。a是指向一維數組的指針,可理解為行指針,*a是指向列元素的指針,可理解為列指針,指向0行0列元素,**a是0行0列元素的值。同樣,a+1指向第1行首地址,但也不能企圖用*(a+1)得到a[1][0]的值,而應該用**(a+1) 求a[1][0]元素的值。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -