給陣列賦值,int a 41,25,69,1相當於什麼

時間 2021-09-11 22:33:37

1樓:卯問玉

指標變數可以指向一維陣列中的元素,也可以指向多維陣列中的元素。但在概念和使用上,多維陣列的指標比一維陣列的指標要複雜。

1、二維陣列的地址

二維陣列可以理解為一個廣義的一維陣列,一個以一維陣列為元素的一維陣列。例如定義一個陣列:

int a[3][4]=;

則陣列a對應的元素為:

a[0][0] a[0][1] a[0][2] a[0][3] …… 第0行

a[1][0] a[1][1] a[1][2] a[1][3] …… 第1行

a[2][0] a[2][1] a[2][2] a[2][3] …… 第2行

現在將第0行陣列元素a[0][0]、a[0][1]、a[0][2]、a[0][3]組成陣列a[0],第1行陣列元素a[1][0]、a[1][1]、a[1][2]、a[1][3]組成陣列a[1],第2行陣列元素組成陣列a[2],則a[0]、a[1]、a[2]就是一維陣列名,代表一個地址常量,分別指向每行的第0列元素,如圖 7 7和圖 7 8所示。那麼a[0]+1指向第0行的第1個元素,a[1]+1指向第1行的第1個元素,所以稱a[0]、a[1]、a[2]為列指標,對它們的增減1將移動1列元素。

圖 7 8 二維陣列中元素地址示意圖

對於二維陣列a來說,還可以把它看成是由a[0]、a[1]、a[2]這些“元素”組成的一維陣列,如圖 7 8所示。而a[0]、a[1]、a[2]又是由4個int型元素組成的陣列,所以a+0指向a[0]陣列的首地址(第0行元素的首地址),a+1指向a[1]陣列的首地址(第1行元素的首地址),那麼a+i指向第i行的首地址,所以a被看成是一個行指標,指標a的基型別是一個由4個int型資料構成的陣列。

由於a指向a[0],a+1指向a[1],所以*a等價於a[0],*(a+1)等價於a[1],*(a+i)等價於a[i],行指標*運算得到列指標。而a[0]+1指向第0行的第1個元素,a[1]+1指向第1行的第1個元素,那麼*(a[0]+1)等價於a[0][1],*(a[1]+1)等價於a[1][1],*(a[i]+j)等價於a[i][j],列指標*運算得到二維陣列的元素值。而a[i]又等價於*(a+i),所以*(a[i]+j)與*(*(a+i)+j)等價,都表示二維陣列元素a[i][j]。

對於二維陣列a[m][n]中的任意一個元素a[i][j],其地址可以表示為:

(1)&a[i][j],

(2)&a[0][0]+i*n+j,

(3)a[i]+j等價於*(a+i)+j

(4)a[0]+ i*n+j

對於二維陣列a[m][n]中的任意一個元素a[i][j],還可以表示成等形式。

通過陣列元素的地址來引用二維陣列元素。

#include

#include

int main()

{ int i,j;

int a[3][4]=;

cout<<"輸出二維陣列a:"<

int main()

{ int i,j;

int a[3][4]=;

int (*p)[4]; //定義一個指向一維陣列(有4個整型元素)的指標變數

p=a;

cout<<"請給出輸出元素的下標值:"<>i;

cout<<"列標號:";

cin>>j;

cout<<"a["<

列標號:2

a[1][2]=7

2樓:韌膽

這是一個3行4列 的2維陣列 陣列 是給第一行的第一二個元素賦值 ,這行其餘兩個元素都賦0 ,後面兩行都是如此,樓上的說好著呢,樓主放心採納

3樓:爬爬不慢

就是給a[0][0]、a[0][1]、a[0][2]分別賦了三組值,其餘全部由int預設為(0,0)了。

4樓:

int a[3][4] =,,};

陣列a[3][4]是3組4個值的陣列。

a[0][0] =1;

a[0][1] =2;

a[1][0] =6;

a[1][1] =5;

a[2][0] =9;

a[2][1] =1;

5樓:

相當於是:a[3][4]=,,};

6樓:柳亦隨風

1200

5600

9100

7樓:匿名使用者

a[3][4]=,,};

int a[][5]={{1,2,3},{4,5,6}}是什麼意思

8樓:匿名使用者

int a[5]

建立一bai個二維陣列 元素型別為duint 型 其大小為n*5 (共有

zhin行

dao 每行5個元素) n的值有其版後初始化權序列決定

初始化序列為

,}所以n為2

即定義2行5列的二維陣列

其每個元素值為

1 2 3 0 0

4 5 6 0 0

ps:陣列元素如果部分定義,未定義部分元素自動賦值為0

j**a二維陣列int[][]a={{1,2,3,},{4,5,6},{7,8,9}}什麼意思,

9樓:卑微丶過客

二維陣列可以看成一個**,一個**可以有任意行和列

,,表示**的行,不是二版維就只有權2行,可以任意行1,4,7表示第一列,2,5,8表示第二列,3,6,9表示第三列通過行和列就可以獲得該位置的元素,比如第三行第二列元素a[2][1]的值是8(下標是從0開始的)

10樓:匿名使用者

二維陣列的含義是指:每個陣列的成員都是另一個同型別的一維陣列;因此,,}表示內最外層的陣列有三容個成員,這三個成員均為一維int型的陣列,第一個成員是,第二個成員是,第三個成員是。當然還可以有第四個、第五個或更多成員。

11樓:藍風水晶靈

我想這抄樣寫你就會明白了

inta=,,}

inta=,,}

一個int型陣列a[4]:&a+1和&(a+1)的區別

12樓:匿名使用者

首先,在int型陣列a[4]中,a是陣列指標,代表了a[0]的地址,陣列指標a本身沒有儲存空間,所以不能用&來取a的地址,使用&a返回的地址值也是a[0]的地址;同樣也不能使用a++或a=a+2之類的賦值語句對陣列指標進行賦值。

所以你這個問題中&a+1和&(a+1)是錯誤的用法。

&a+1指向的是陣列a[4]之後的地址空間。

&(a+1)是非法的語句,無法編譯,因為a+1的結果存放在暫存器中,無法取址。

如果你想表達的是取值操作,那應該使用取值操作符*,表示式變為*a+1和*(a+1),這兩個表示式是有區別的:

*a+1表示是先取出a[0]的值,然後對該值加1。

*(a+1)表示的是陣列指標先向下跳一位,然後取出其指向的a[1]的值。

13樓:鎏樂灬緯塍

&a+1指的是在陣列地址是再加一整個陣列的地址

&(a+1)指的是增加一個型別長度的地址

14樓:育知同創教育

&a+1是a的地址加上1,&(a+1)是(a+1)的地址

&是地址運算子和引用運算子

int a[3] [3] ={1,2,3,4,5,6,7,8,9};

15樓:我才是柳隨風

這個二維陣列

實際上是一個有3個元素的一維陣列,其中陣列的元素又是一個有3個元素的一維陣列。

我們先按行優先重新排列一下:

int a[3][3]=

;c和c++中的陣列是從0開始編號的,

第1行:a[0][0],a[0][1],a[0][2]第2行:a[1][0],a[2][1],a[1][2]第3行:

a[2][0],a[2][1],a[2][2]再看你要取的值:a[1][3]在**呢?顯然在a[1][2]之後,但該值已經超出了陣列的界限(陣列有3個元素),即下標溢位了,溢位到了**呢?

因為c/c++中多維陣列(儲存方式)相當於連續的一維陣列,因此,這裡它的溢位位置恰好是a[2][0]所在的位置。

現在可以給你答案了:a[1][3]=7

16樓:匿名使用者

不知道,因為a[0][0]表示第一行第一列,a[0][1]表示第一行第二列

a[1][0]表示第二行第一列,而a[1] [3]表示第二行第四列,而這個陣列是3行3列的,所以不知道a[1] [3]等於多少,沒定義

17樓:今天最慘痛

7a[3][3] 就是3行3列

a[1][3] 就是第2行第4列(因為陣列下標是從0開始記的),但是陣列裡沒有第4列,順著往下數,就是第3行的第一列,就是7.

18樓:馮益斌

賦值後,a的元素為

1,2,3,4,5,6,7,8,9

4,5,6,7,8,9

7,8,9

a[1] [3]=7

19樓:

0列 1列 2列

0行 1 2 31行 4 5 62行 7 8 9a[1] [3]=6

20樓:匿名使用者

越界了,但是由於二維陣列的線性儲存性質,

a[1][3]可能是a[2][0]這個資料,也就是7

我只能說可能啊,

21樓:匿名使用者

沒有,最多到a【1】【2】

22樓:

輸出值為7.題一點問題都沒。

在c語言中, int a[][5] = {1,2,3,4,5,6,7,8} 是合法陣列宣告,那麼

c語言大神幫忙編寫程式若有二維陣列int a[3][3]={{1,2,3},{4,5,6},{7,

23樓:匿名使用者

#include

int main()

,,};

int i,j,temp;

for(i=0;i<3;i++)

for(j=0;j轉置

bai後du的zhi

矩陣dao為回:答\n");

for(i=0;i<3;i++)

return 0;}

怎樣把char陣列賦值給另char陣列

黑夜不是我 簡單的可以使用memcpy,舉個例子 include include int main int argc,char argv include using namspace std char2最好有8個位元組,因為末尾要有 0 strncpy char2,char1,8 ps.strcpy...

在VBA中如何用陣列給另陣列賦值

通過陣列迴圈的方式進行陣列賦值。示例 dim names 定義一個初始化陣列dim dest 3 定義一個要賦值的陣列 賦值names array 小明 小紅 效力 張明 王武 通過ubound 函式計算上界,lbound計算陣列下界for i lbound dest to ubound dest ...

c語言陣列賦值問題,c語言中如何給陣列定義並賦初值?

靈凍冰晶霜月 我不清楚你想問什麼,不過第二種寫法是對的。char chars 11 是定義了一個初始值為空總數為11的字元陣列。char s c language 定義一個總數為11的字元陣列,但是有初值。注意是11個不是10個,用這種方定義的字元陣列末尾會加一個 0。陣列的賦值通常是使用花括號來表...