(1)指標陣列argv中每個元素都是指標,即每個元素都是字串的首位址.因此測試1組輸出結果為:
argv[0]=0x4270ac,argv[0]=abcdefg
argv[0]=0x426034,argv[0]=1234567
argv[0]=0x42601c,argv[0]=q1w2e3r
(2)二級指標p指向指標陣列argv的首位址處.因此測試1組輸出結果為:
p=0x13ff74 /*二級指標p中存放了指標陣列argv所在(連續)位址空間的首位址*/
argv[0]=0x4270ac /*字串0首位址*/
&argv[0]=0x13ff74 /*字串0首位址所在儲存空間的位址*/
可以看出,二級指標p所指向的位址與指標陣列中首元素所在儲存空間位址相同,均為0x13ff74.
(3)從測試2組可知,二級指標p中存放了指標陣列argv所在(連續)位址空間的首位址,換句話說,二級指標p中存放的是位址,所以,*p是該位址中的內容,即字串0的首位址.因此測試3組輸出結果為:
*p=abcdefg
*(p+1)=1234567
*(p+2)=q1w2e3r
(4)從測試2組可知,二級指標p中存放了指標陣列argv所在(連續)位址空間的首位址,因此測試4組輸出結果為:
(*p)=abcdefg
(*p+1)=bcdefg
(*p+2)=cdefg
(5)從測試2組可知,二級指標p中存放了指標陣列argv所在(連續)位址空間的首位址,因此測試5組輸出結果為:
p=0x13ff74
argv=0x13ff74
&argv[0]=0x13ff74
&argv[1]=0x13ff78
&argv[2]=0x13ff7c
再次驗證了二級指標p與指標陣列中各成員之間的關係.
(6)由於是指標型資料,因此測試6組輸出結果為: sizeof(argv)=4
C 陣列指標 指標陣列與二級指標
二級指標 測試 陣列指標是指標,意為指向陣列的指標 指標陣列是陣列,意為陣列內部儲存著指標的陣列。陣列指標具有如下特性1 陣列指標用於指向乙個陣列 陣列名是陣列首元素的起始位址,但不是陣列的起始位址,通過取位址符 作用域陣列名可以得到陣列的起始位址 可以通過陣列型別定義陣列指標如 arraytype...
二級指標與陣列
char str 這是字元指標陣列,每乙個陣列元素是乙個指標變數,而每個指標變數指向字串首字元位址,即是字串的位址。因為每乙個字串都代表的是乙個位址,是字串首字元的位址。字串常量是放在文字常量區,是不可以更改的。而指標陣列str裡面存放的是指向字串位址,它是可變的。如str 0 是可變的,它是指標變...
二級指標與陣列指標的區別
今天早上遇到乙個問題,我想向函式裡面傳送乙個二維陣列int matr ix m ax max int matrix max max intmat rix max max 我採用的方法是二級指標,我當時的考慮是二維陣列名的二級解引用是乙個整數,整型二級指標的的二級解引用也是乙個整數,所以我想當然地就認...