c語言若已定義 int a 41,3,5,6,9P a則p a的值是求過程

2021-04-18 21:59:27 字數 2891 閱讀 7011

1樓:匿名使用者

p是指向陣列第三列的地址值

a是指向陣列第一列的地址值

所以 p-a 其實就是兩個地址的差值,實際就是前兩列資料所佔的儲存空間 4*2*2=8個位元組

2樓:匿名使用者

a[2]是在第三行開頭嘛,一行4個,兩行就是8

若已定義: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中 0≤i≤9, 則對a陣列元素正確的引用是( )

3樓:

正確的是 a) a[i];

b) &a[i] 這個是個地址

c) p[i-1] 這個可能會越界 i=0時 p[-1]越界d) a[10] 越界

4樓:假面

選擇a) a[i]

b) &a[i] 這個是個地址

c) p[i-1] 這個可能會越界,i=0時,p[-1]越界d) a[10] 越界

陣列元素也是一種變數, 其標識方內法為容陣列名後跟一個下標。下標表示了元素在陣列中的順序號。陣列元素通常也稱為下標變數。

必須先定義陣列, 才能使用下標變數。在c語言中只能逐個地使用下標變數,而不能一次引用整個陣列。

若有定義:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a; ,( )對陣列a元素的引用是正確的。

5樓:處搖胼手胝足

a。a陣列的長度是3,*(p[4])和**(p+4)都會造成超出地址範圍

(**p)[2]表達不正確

*(p[2]+3) 是a[2][3];

6樓:匿名使用者

int (*p)[4];表明p是行指bai針,即p指向二維陣列中的一du行。zhi

p=a;這一句表示

daop指向a[0],也就是

版指向a陣列第0行的第0個元素權

(a[0][0])的地址。

p[2]表示p指向a陣列的第二行,即指向a[2]行,也就指向a[2][0]的地址。

p[2]+3表示行指標指向a陣列的第二行(從第0行開始),(從0開始)第3個元素,也就是a[2][3],*(p[2]+3)表示第2行,第3個元素的值。

p+4表示第四行(從0行開始),因為a陣列沒有第四行,所以是錯的。

p[4]表示第四行(從0行開始),原因同上。

*p表示a陣列第0行,第0列地址,**p表示a[0][0]的值,值不會再包含元素,所以(**p)[2]是錯的。

c語言問題 若有說明int a[][4]={1,2,3,4,5,6,7,8,9};,則陣列a第一維

7樓:格子裡兮

若有說明int a[][4]=;則陣列a第一維是3。

定義陣列並賦值時c語言規定下標是這樣的,a[n]中的n個元素應該是a[0]....a[n-1]。。

因此int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3。

分析:二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行。

8樓:杜爺1號

答案是b,3.

int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3.

9樓:小兆

你定義的就是一個二維陣列,第二維的個數是4,為了把所有的資料能分成四份有沒有遺漏,那第一維就是3了。

10樓:寂寞的菸頭哥

首先看陣列後面為4表示有四列二維陣列是

1234

5678

9000

這裡就可以很明顯的看出是三行,所以就是a[3][4],第一個叫做第一維,第二個叫做第二維

若已定義:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a+4; 則數值為14的表示式是()-

11樓:小妖丶

不用算啊 b p+8超出範圍了 c和d 返回值都是地址 只有a可能是對的

若已定義,int a[3][2]={1,2,3,4,5,6};,值為6的陣列元素是

12樓:匿名使用者

a[2][1] = 6

首先,c/c++語言中,下標是從0開始;

則 儲存情況如下:

[0] [1]

[0] 1 2

[1] 3 4

[2] 5 6

所以答案為:a[2][1]

13樓:匿名使用者

a[2][1]

陣列下標都是從0開始的

定義了一個三行兩列的陣列,所以第一維是行號,有0~2,第二維是列號有0~1

很顯然,值為6的就是a[2][1]

14樓:無憂網事

int a[3][2]說明二維陣列為三行,二列,共6個元素。

c語言下標是從0開始計數的。

值為6的是最後一個元素,即a[2][1]。

若已定義 int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0<

15樓:樑夢容

da地址可以相減,沒有問題

b取值沒有問題

c更沒有問題

d去掉外面的*就沒有問題了

16樓:匿名使用者

d, int a={0,1,2,3,4,5,6,7,...

若已定義 int a0,1,2,3,4,5,

正確的是 a a i b a i 這個是個地址 c p i 1 這個可能會越界 i 0時 p 1 越界d a 10 越界 選擇a a i b a i 這個是個地址 c p i 1 這個可能會越界,i 0時,p 1 越界d a 10 越界 陣列元素也是一種變數,其標識方內法為容陣列名後跟一個下標。下標...

若已定義inta3,b5,c2則表示式cab的值為

1 按照運算子優先順序,的優先順序大於 所以先計算b c的值,應為 回b 2,c 3,所以這個表示式的 答值為假,也就是值為0.然後將b c的值賦給a,那麼執行a b c之後,a 0 2 第一個方式不正確,第二個左值不能為表示式,第三個正確,第四個左值不能為表示式 c a c 2 a 0 b 5 所...

c語言中,定義inta30,2,4,

a 1 這種寫法是錯的,a是陣列第一個元素的地址,a 1,a 1 2,這明顯是錯的。c語言中 a 1 什麼意思 int a 3 4 1,3,5,7 2,4,6,8 a 1 的值 a 1 3。a 1 這種寫法是錯的,a是陣列第一個元素的地址,a 1,a 1 2,這明顯是錯的。已知 int a 4 3 ...