C語言指標陣列的問題

2022-09-08 12:55:04 字數 754 閱讀 4439

1樓:匿名使用者

關注位址型別,只要型別匹配就正確,下面描述中注意括號,用來斷句。

int a[2][3]

陣列型別是int [2][3]。

位址型別是 int (*)[3],含義是 指向(含3個整數的一維陣列)的常量指標,該指標指向的位址為3個列的一行,所以陣列名本身就是行位址。

int *p[3]

陣列型別是 int *[3] ,含義是 :含3個(整數指標)的陣列。

位址型別是 int **,含義是:指向(整數指標)的常量指標。

a)p=a,錯誤

取a的位址賦值給p,p是陣列,陣列就是常量指標,所以不可以賦值。

b)p[0]=a,錯誤

p[0]是整數指標,型別是int *,和a的位址型別不匹配。

c)p[0]=&a[1][2],正確

&a[1][2]是a陣列中乙個整數元素的位址,型別int * 和p[0]型別匹配。

d)p[1]=&a,錯誤

&a就是a的位址,型別是int (*)[3],與p[1]的型別不匹配。

2樓:匿名使用者

int *p[3],那麼p的型別是int*[3],p是乙個陣列,每個元素是int*,你可以看看int a[2][3]代表int*的,有哪乙個就很明白了。

3樓:

位址一樣但型別不一樣

4樓:彡風君子彡

a相當於乙個指標p存的是位址所以不行

C 指標的問題,C語言指標問題

這麼說吧,指標是以後資料結構的基礎,比如單鏈表,雙鏈表,二叉樹等等等等,全部都時指標做的,還有1720次對於現在的計算機來說,是個很小很小很小的數量級。指標學好了受益匪淺,並且也是程式設計今後必須的。指標的確是可以大大提高效率,但是要看你怎麼用,就和遞迴演算法一樣,另外,顯示位址是你語句的問題。比如...

關於c語言二維陣列陣列名與指標的問題

先說些這個2維陣列 int arr 3 4 可以理解為乙個3行四列的矩陣,那麼第一維arr 0 arr 1 arr 2 中存的分別是對應行的位址,也就是說arr 0 存的是乙個 大小為4的整形陣列位址 這樣的話就好理解了,arr存的位址值其實與arr 0 本質上是相同的。都是這個連續空間的開始位址。...

指向多維陣列的指標問題,C語言中對指向多維陣列的指標陣列中多維陣列元素的間接定址問題

int multi 3 4 這是乙個二維陣列,具有3行4列 int ptr 4 定義ptr是乙個可以指向一行具有4個元素的行指標變數,即,例如,二維陣列multi 3 4 可以看成是3個一維陣列 每個陣列4個元素 疊加構成,則其陣列名就為multi 0 multi 1 multi 2 又是乙個一維陣...