二維陣列的位址問題

2021-08-20 17:22:44 字數 456 閱讀 9670

void main()

;printf("%p,%p,%p\n", str, &str, *str);

printf("%d,%d,%d\n", sizeof(*str), sizeof(*(&str)), sizeof(*(*str)));

system("pause");

二維陣列你取str, &str, *str的位址,竟然神奇的發現他們都是一樣的,這讓很多人很迷惑,我也是迷途中的一員,直到我算了他們的大小sizeof(*str), sizeof(*(&str)), sizeof(*(*str))發現他們的大小是不一樣的。其中str表示一行的首位址,所以其大小是10,&str表示整個陣列的首位址,所以其大小是50.*str的指單個元素的首位址,其大小是1。由以上可以知道指標的位址一樣但是型別不一樣   表示的意義也不一樣。

千萬注意指標的兩大要素  一是位址,二是指標型別,型別決定步長。型別不一樣,步長不一樣。

二維陣列位址

二維陣列定義 int arr 2 3 typedef p arr 3 p q for size t i 0 i 2 i printf n value 1,address 010ff770 value 2,address 010ff774 value 3,address 010ff778 value ...

指標與一維陣列,二維陣列的位址問題

include void main 對於一維陣列的位址 1,值 1的問題 include void main 輸出結果 6356716 6356720 2 6356720 可以看出對位址 1是 4,是因為int型別佔四個位元組,加乙個int的位址,相當於加了四個位元組的位址。對於二維陣列的位址 1問...

cout 陣列 二維陣列的位址

c primer3.6多維陣列ia的例子,發現對於ia,和ia 0 兩者數值相同,產生了疑問,經過查閱相關資料,特此記錄。一 關於二維 高維陣列的位址 二維陣列ia int對二者 ia,ia 0 的數值是否相同進行驗證 int main cout ia endl cout ia 0 endl ret...