二維陣列中a代表什麼,二維陣列中a1代表什麼

2021-03-04 06:42:26 字數 3319 閱讀 9210

1樓:皇亙理智菱

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

如有定義int

a[10][100];

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

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

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

2樓:

//若定義,

int a[3][4];

//則a[1]表示a[1][0]的位址,即&a[[1][0]。

3樓:匿名使用者

是位址。比如說是字元型別a,可以看成是第二字串的第乙個字元的位址,++a[1]表示第二字字元的位址。相當於一維陣列的a。

計算機c語言中二維陣列a[1]和a[2]分別代表什麼

4樓:金色潛鳥

語句中 a[1] 表示 位址 &a[1][0], a[2] 表示 位址 &a[2][0].

即二維陣列a 的 第2行 元素 的 首位址 和 第3行 元素 的 首位址。

5樓:快先帶兒子走

陣列a的第二行和第三行

二維陣列中a是什麼意思

6樓:聽不清啊

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

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

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

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

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

7樓:尼嗎還有

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

8樓:匿名使用者

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

9樓:不捨良人

一般二維陣列在記憶體中是按行存的 ,比如定義 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。

10樓:

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

c語言中的二維陣列裡a+1和*(a+1)為什麼都是位址

11樓:劉文正粉絲

二維陣列, int a[10][20];

a是乙個指標的指標, 即二級指標.

乙個指標加乙個數, 當然還是指標(即a+1是指標)

取值乙個二級指標, 是一級指標(即指標), 所以還是指標, 不過型別發生了變化.

a+1的型別為int *[10].

而*(a+1)的型別則為int *, 也就是平常的指標.

如果你學習二維陣列是用心, 你就會知道不存在二維陣列, 二維陣列其實是乙個包含陣列的陣列, 即陣列的每乙個元素還是乙個陣列(這點有點像物件導向的思維).

所以a[0]就是取第乙個元素值, 而第乙個元素是陣列, 所以其值仍是乙個指標.

答了這麼多, 一看問題, 發現是"位址".....位址和指標是乙個東西.

12樓:zh呼嘯而過

例如a[5][10];

a + 1的值是第二行的首位址,

* (a + 1)得值也是第二行的首位址,但是a + 1不等於a[1],而* (a + 1)等於a[1]。

如果給a+1再加1,就是a+1+1,就是a+2,它的值是第三行的首位址

如果給*(a+1)再加1,就是*(a+1)+1,它的值是第二行的第二個位址

他們移動的區別:前者是縱向的,後者是橫向的。

指標型別的區別:兩者均存放為同一位址,但前者是指向一維陣列,後者是指向元素的。

實際就是前者每次跳動4*10個位元組,後者每次跳動4個位元組。

13樓:twinkleh丶

a+1應該是 (a+0)+1

這裡的a是二維陣列中的二級指標

陣列名為a[0]的一維陣列(表示行)

也是陣列名為a的一維陣列(表示列)

後面的1表示行陣列移動1行

0表示列的移動

所以是1行0列的位址

*(a+1)中a是二級指標

取值二級指標是一級指標

一級指標指向的一維陣列(二維陣列中的行)

一維陣列移動一位只能是向下移動也就是行,

所以就是 第一行的首位址 也就等於二維陣列中 第一行零列的位址

14樓:tlier丿殘刀

二維陣列又包含多個一維陣列 a指向第乙個一維陣列的首位址就還是位址

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

15樓:匿名使用者

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

c語言中的二維陣列裡a+1和*(a+1)為什麼相等?

16樓:匿名使用者

它們只是值相等,但型別不相等,不能說它們相等。

a+1是int **型別,指向的是陣列a的第二行的起始位址; *(a+1)是int *型,指向的是陣列a的第二行第乙個元素的位址。

二維陣列中a 1和*(a 1)的值為什麼都是位址

17樓:匿名使用者

a[0]第0行的行位址

a[1]第1行的行位址

*a[1]第一行的第乙個數。

希望下面的程式可以幫到你:

#include

#include

int main(void);

printf("a= %d\t",a);

printf("a+1=%d\n",a+1);

printf("*a= %d\t",*a);

printf("*a+1=%d\n",*a+1);

printf("a[1]=%d\t",a[1]);

printf("*a[1]=%d\n",*a[1]);

system("pause");

return 0;

}執行結果:

c 二維陣列排序問題,C 二維陣列sort函式排序問題

include 寫的比較簡單,原理你應該都知道了,後面的,就是 開始做的那個沒刪 void main for i 0 i 12 i 冒泡 for j 0 j 12 j if a j 4 j 4 a j 1 4 j 1 4 看起來有點複雜,其實就是 12個數分成3行4列,對應的行數就是j 4,列數j ...

二維陣列與矩陣的區別?二維陣列和矩陣的區別

二維陣列是程式語言中的叫法,矩陣是數學教材上的教法。它們之間沒多大區別。如果把有些規定說明一致的話,應該是一樣的。其實是一樣的。int a int b 3 3 a b 那麼陣列名就是首個元素位址。a 1就是b 1 0 或者b 1 的位址。二維陣列和矩陣的區別 二維陣列是矩陣的一種實現方式,就是在程式...

關於c語言二維陣列的問題,C語言中二維陣列的定義問題

a是乙個一維陣列,陣列裡的值是指標,指向的還是一維陣列。即等價於,int x 2 2,0 int y 2 4,8 int a 2 x,y 我想你應該知道答案了。c語言中二維陣列的定義問題 正確寫法如下 char fd jgf1 maxitemlen 1 說明 把null去掉 1.二維陣列的第乙個維度...