二維陣列中a是什麼意思二維陣列中ai是什麼意思

2021-03-05 09:17:30 字數 2723 閱讀 7701

1樓:聽不清啊

在c語言中規定,陣列名代表的是陣列首元素地址。

如有定義int a[10][100];

a表示二維陣列的陣列名。

a也是這個陣列的首地址。

因此,在二維陣列中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。

2樓:尼嗎還有

a是個地址,就是這個陣列的首地址,也是這個陣列的變數名稱

3樓:匿名使用者

不明白樓主想說什麼,把二維陣列的內容給貼過來看看便得知

4樓:不捨良人

一般二維陣列在記憶體中是按行存的 ,比如定義 int arr[3][3] = ; 三行三列的一個陣列。arr[0][0]的值為1;arrp[2][0]值為4。而arr就相當於一個二級指標,*arr就是取出第一行的一個數字的地址,arr[1]就是取出第二行的第一個數字的地址,它等價於(*arr +3)。

(*arr + 5)就是取陣列第二行的第三個數字的地址。即(*arr +5)就是資料6的地址,再做*運算*(*arr+5) 就是取出資料6。

5樓:

a是地址常量,今天剛學到的,哈哈

二維陣列中*(a+i)是什麼意思

6樓:匿名使用者

在c語言中規定,陣列名代表的是陣列首元素地址。a是二維陣列的陣列名,因此,在二維陣列中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。

二維陣列中,*a和*a[0]為什麼不同。

7樓:金色潛鳥

在 c 語言中不是標點符號,而是運算子。

有恆等式: a[i] = *(a+i)

所以,表示式裡, *a[0] = *(*(a+0)) = *(*(a)) = **a.

你的 *a 是一個星,而 *a[0] 是 2 個 星,當然不同。

------

*a不應該是返回以a 的值作為地址的那個空間的取值嗎 -- 只有 當 a 是1維陣列時才是對的。*a 等於 *(a+0) 等於 a[0];

8樓:匿名使用者

二維陣列中,*a表示二維陣列首地址,*a[0]表示第一行的首地址(即a[0]的首地址,而a[0]又可以說是一個陣列)

但這兩個地址值是一樣的,不過意義不一樣

9樓:匿名使用者

a[0]本身是個值了,單個a代表地址。如同int a[2]= ;其中 a[0]=1

10樓:哈高妮薩

a[0]等同於同*a。

所以*a[0]等同於**a。

a[0]是第一行元素首地址。

*(*a)等同於*(a[0])等同於*(&a[0][0]),即第一行第一個元素的值。

c語言中二維陣列*(a+i)的意義

11樓:

*(a+i)——二維陣列第i行(從0起算)第一個元素的地址。

12樓:匿名使用者

所謂*(a+i)等價於a[i],而a[i]是一個陣列名,那麼a[i] = &a[i][0],陣列名等與首元素的地址

c語言中二維陣列a[i][j],為什麼a=*a?

13樓:匿名使用者

在c語言中,二者是相同的地址值。所以可以說a=*a.

二維陣列a定義為a[i][j]時,代表一組資料,有i行j列,共計i*j的元素。

這組資料在記憶體中是連續存放的。而在c語言的使用中,a是二維陣列的首地址。*a也就是a[0],是二維陣列第一行的首地址。

所以,二者是相同的地址值,即資料a[0][0]的地址值。

也就是說,從值上,a,*a, a[0],&a[0][0]都是相同的值。

當時,說a=*a也並不是完全正確的,從型別上,a等同於二維指標,而*a等同於一維指標。二者型別並不相同,只是在一定條件下可以轉換。

14樓:匿名使用者

我理解問題中的這個=樓主是指相等,而且是數值上相等。這是肯定的。*a實際是*(a+0)+0,也即是a[0]+0這個地址,和a一樣,其數值也是這個二維陣列的首地址。

但是二者含義可不同,不能直接相互賦值。a是行指標,即a是一個大小為i的陣列,其元素也是陣列,大小為j。*a由上面的解釋,其實質是個列指標,指向a的第一個元素(大小為j的陣列)的第0個元素。

15樓:匿名使用者

#include "stdio.h"

main()

} 正確的寫法應該是上面這樣的。

這裡涉及到2個問題:

1.陣列宣告的時候a[9]就是有9個元素的陣列,a[10]就是有10和元素的陣列

2.陣列賦值的時候第一個元素的下標是從0開始的,即a[0],最後一個下標是宣告時的數字-1,如:宣告時:a[9],最後一個元素是a[8]。a[9]是超範圍的。

16樓:

陣列名a表示二維陣列的首地址,*a就好比第一行的地址值a[0],a[0]表示&a[0][0]....

17樓:匿名使用者

二維陣列的指標比較特別,* 的作用是將行指標轉換成列指標,陣列名a是指向第一行的指標,*a則是指向第一行第一列的指標,根本含義上市不一樣的,但是值都是a【0】【0】的地址

a二維陣列, a 2 二維陣列

a是二維陣列,每行5個int,a 2 指向第三行第1個int即 a 2 為2 5 1為11 a 2 代表第二行的首地址,也就是a 2 0 所以 a 2 就是a 2 0 那輸出肯定是11了 c 語言語句中 的 中括號,不是標點符號,而是 運算子!牢記 恆等式 x i x i 這是c 語言語句中 指標和...

c 二維陣列賦值,c 二維陣列怎麼定義與賦值?

沒有,如果想a 0 b 那麼使用交錯陣列。int a new int 5 int b new int a 0 b 同時,你的兩個陣列宣告錯誤。c net中如何定義二維陣列並給其賦值 定義一個3行2列的二維陣列,元素型別為int int values values 0,1 100 修改第一行第二列元素...

C 函式呼叫二維陣列,C語言一維陣列轉二維陣列

n如果是變數的話,陣列編譯時都通不過吧。陣列分配時必須知道大小。函式應該這樣宣告function char array 10 10 或省略第一維的大小function char array 10 function char array n n 這樣是錯誤的,陣列的索引必須是個常量表示式。如果需要必須...