int a1,2,3,4,5,6,7,8,9,10p a i則下列能夠正確表示陣列元素地址的是

2021-04-15 12:27:05 字數 5139 閱讀 4769

1樓:匿名使用者

答案是d

p[ i ]是陣列a[ ]的第i+1個元素,&p[ i ] 即取陣列a[ ] 的第i + 1個元素的地址,故&p[ i ]表示陣列元內素地址。

a 錯,

容a+1本身就是陣列第二個元素的地址,再取地址編譯報錯b 錯,a是陣列名,儲存在靜態區,不能進行自增++運算,只有變數才可以++

c 錯,p本身就是指向陣列的首元素a[0],&p表示指標變數p的地址。

2樓:cornerboy丶

答案為d.

a,意為對陣列a中第二個元素地址的地址.

b,不能改變陣列a的首地址.

c,意為對陣列a中首元素地址的地址.

d,意為陣列a中下標為i的地址.

3樓:等晨光的孩子

a是陣列元素的首地址是常量 所以對a 進行算術操作都是錯的。

p是地址。。。所以d是正確的 c是對地址取地址

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

4樓:

正確的是 a) a[i];

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

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

5樓:假面

選擇a) a[i]

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

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

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

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

20懸賞!!**等!若有以下定義:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 則值為3的是( ) 20

6樓:匿名使用者

*p=a,陣列名錶

bai示地址,該

du句話的意思就是p=&a[0],p+=2表示p=&a[2];

接下zhi來我們看看* ++的優dao先級版,兩個優先順序是一樣的,屬於右權結合。*(p++)首先計算p++,由於++在後面,所以*(p++)相當於計算*p,然後p++;所以a和c相同,至於d ++*p表示++(*p),將*p的值++。我不知道樓主用的什麼編譯器。

對於我的理解,如果是printf(「%d」,*(p++))這種樣式輸出的話,a 輸出是3,b輸出是4,c輸出的是4,d輸出是4

7樓:匿名使用者

應該是a,*(p++)和*p++是一樣的,都是先算p++【為p】然後算* 符【為*p=3】最後p自加

這是* 和++的右結合性。

c語言 int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 0<=i<=9,對a陣列元素引用不正確的是:

8樓:匿名使用者

b 是不是a[i]?? //是a[i]

c p[i] 是相當於a[i],這

不是在獲取元素a[i]的地址嗎? 為什麼

版c也正確?權?// p[i] 是相當於a[i]a 中為什麼能用用p減a??a[p-a]什麼意思?? //p的值就是a,所以p-a的值為0,相當於a[0]

d 是不是相當於*a[i], 因而不正確?? //是的*(a+i)就是a[i],那麼再*a[i]就錯了

9樓:擺渡人生

首選 (a+i)就是個地址 一個* 代表 這個地址的資料 也就是陣列第 i 個數字

再加個* 就沒有意義了。。

10樓:匿名使用者

a可以理解為這個陣列的首地址

a[3]是指向第4個元素

所以p指向第4個元素

p[5]是從p後的5個 也就是第9個元素所以b=9

有以下程式段則*p為()

11樓:匿名使用者

int a[10]=,*p=&a[2];

p+=5;

這裡應來該是p+=5,否源則沒有正bai

確答案。

p初始du指向a[2]

自加5之後

zhi 指向a[2+5]=a[7]=8

所以dao*p值為8.

12樓:

d,p為指向整型資料的指標變數,存放的是a[3]的地址,即p指向陣列,b=p[5],因此,b中的值是9。

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12} , (*prt)[3]=a, *p=a[0] ; 後兩句是什麼意思

13樓:匿名使用者

(*prt)[3]=a指的是(*prt)+3的這塊指標指向2維陣列a的首地址,prt應該是個2維指標。

*p=a[0]指的是大小為3的第二維陣列的首地址。

如果不對指標做加法運算的話,不用計較它真正指向幾維陣列,他們指向的都是a、a[0]、a[0][0]的地址。

14樓:匿名使用者

嗯 為陣列下

標是從0開始的,所以不可能出現4 最後是a[3][2]1 2 3

4 5 6

7 8 9

10 11 12

對應的陣列下標:

a[0][0] a[0][1] a[0][2]a[1][0] a[1][1] a[1][2]a[2][0] a[2][1] a[2][2]a[3][0] a[3][1] a[3][2]

15樓:匿名使用者

(*prt)[3]=a,指向陣列a,a[0][0],a[0][1],a[0][2]....,a[3][2],指標確實很麻煩..

*p=a[0] ;p指向a[0][0],a[0][1],a[0][2]

驗證程式如下:

#include

void main()

, (*prt)[3]=a, *p=a[0] ;

int i;

printf("%d\n",*p);

//printf("%d\n",*prt);這樣寫是錯誤的,因為prt是指向一個含3個元素的陣列的

//*prt的值是a[0]陣列的首地址,&a[0][0],才指向a[0][0];

printf("%d\n",**prt);

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

printf("%d ",*(*prt+i));

printf("%d\n",**(prt+3));}

16樓:匿名使用者

a[0][0], a[0][1], a[0][2], a[0][3]

17樓:匿名使用者

a[0]指的是a[0][0]也就是1

說明語句如下:int a[10]={1,2,3,4,5,6,7,8,9},*p=a;則數值為6的表示式是( )。

18樓:匿名使用者

d。表示式「*p = a」說明p指向a[0]的位置;

那麼 *p + 6 = a[0] + 6 = 7; a錯;

p指向a[0]的位置, 則p + 6 指向a[6]的位置,那麼 *(p + 6) = a[6] = 7; b錯;

p是一個指標,p的值本身是一個地址,p + 5顯然不可能為5; c錯;

上面說了, p指向a[0]的位置,那麼 *p = a[0] = 1;

*p += 5; 等同於 a[0] += 5; 等同於 a[0] = a[0] + 5 = 1 + 5 = 6;

顯然只有d正確;

19樓:匿名使用者

d 一開始定義了 *p=a,就是指等於a[0];它指向的是一個值!

*p+=5,可以變換一下 *p=(*p)+5 不就 a[0]+5=6.....

a = 7 ;

b 的值是 a[6]=7

c 是一個地址 &a[5] 不是值!

20樓:林聲飄揚

da> *p+6=>1+6=7

b>*(p+6)=7

c>p+5 是地址

d>*p+5=>1+5=>6

所以選d

若有以下定義和語句: int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 則不能表示a陣列元素的表示式是( ) a) *p b)

21樓:墨汁諾

不能表示a陣列元素的表示式是( b) a[10] )----因為陣列a的最大下標只能是9,即a[9],

a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共10個元素。

a、*p  ---表示取p指標指向的單元的值,即表示取陣列a的首個元素a[0]的值。

b、a[10] ---因為陣列a一共10個元素,從0開始計數,

即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10個,沒有a[10],所以a[10]就是不能表達這個陣列元素。

c、*a ----陣列名a中儲存的是陣列的首地址,*是取單元中的值,*a就是取陣列首地址中單元中a[0]的值。

d、a[p-a] --- p指向的是陣列a,因為p中與a同資料相同都是陣列a的首地址,而p-a就等於0,因此 a[p-a]就相當於a[0]。

22樓:匿名使用者

選b)a[10] a[0]、a[1]、a[2]……a[9]分別是陣列a[10]的十個元素,故a[10]不能表示a陣列的元素。

23樓:匿名使用者

選 b a[10]

陣列是從a[0] 到 a[9] 的。。。。。。

1,2,3,4,5,6,7,8,9,10的倍數各有什麼特點

1 若一個bai整數的末位是0 2 4 6或8,則這du個數能被2整除。zhi 2 若一個整數 dao的數字和回 能被3整除,則這答個整數能被3整除。3 若一個整數的末尾兩位數能被4整除,則這個數能被4整除。4 若一個整數的末位是0或5,則這個數能被5整除。5 若一個整數能被2和3整除,則這個數能被...

1,2,3,4,5,6,7,8,9,10的倍數各有什麼特點

1.若一個整數的末位是0 2 4 6或8,則這個數能被2整除。2.若一個整數的數字和能被3整除,則這個整數能被3整除。3若一個整數的末尾兩位數能被4整除,則這個數能被4整除。4.若一個整數的末位是0或5,則這個數能被5整除。5.若一個整數能被2和3整除,則這個數能被6整除。6.若一個整數的個位數字截...

從編號11的從編號1234567891011的11個球中取出5個小球

1到11,先分奇 偶。6個奇數,5個偶數。接著用乘法原 理和加法原理 因為 奇 奇 偶 奇 偶 奇 偶 偶 偶所以,要使5個球的數之和為奇數,則奇數球必須為奇數個。所以當有1個奇數球時 c 1,6 c 4,5 30當有3個奇數球時 c 3,6 c 2,5 20 10 200當有5個奇數球時 c 5,...