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 這樣是錯誤的,陣列的索引必須是個常量表示式。如果需要必須...