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.二維陣列的第乙個維度...