mainint a1,3,5,7,9,d 1,p a p 3 dp printfd n ,d 請高手詳解,謝謝

時間 2021-08-30 09:42:35

1樓:

*p=a; //p指向陣列首地址指標

p+=3; //移動指標指向第四個陣列內容7

d+=*p; //d加上p指向陣列內容(1+7=8)

2樓:匿名使用者

寫**要有個好的格式,你看這些**縮排後是不是很容易看了。

main()

,d=1,*p=a; //定義一個整型陣列a,初始化時有5個元素,所以陣列大小為5個

定義一個整型數d ,初始化為1

定義一個整型指標p,由於陣列名a即該陣列的首地址,所以該指標指向陣列a的首地址。

p+=3; //p所指向的地址往後位移3個單位,由於他指向的是整型陣列,所以他位移的單位是陣列的元素。即此時p指向的內容是 a[3]。

d+=*p; //*p即取p所指向的地址上的值, 該語句等同於 d = d + *p;

printf("%d\n",d);}

3樓:s如詩如夢

我給你詳細解釋了。

main()

,d=1,*p=a;

p+=3;

d+=*p;

printf("%d\n",d);}

#include ​main() { int j,a[ ]={1,3,5,7,9,11,13,15},*p=a+5;

4樓:匿名使用者

pr是列印不,輸出9,9,11

一開始p指向a[5]的位置,就是11

j=3,p左移指向9,輸出*p也就是9

j=2,輸出*p也就是9再右移指向11

j=1,輸出*p也就是11在右移指向13

5樓:

題目不完整 pr是什麼玩意

執行inta5]=(1,3,5,7,9}*p=a;p++ ;程式段後,*p等於

6樓:匿名使用者

上面的**有bai點亂,猜測du

你是zhi要輸入這個:

dao#include

int main();

p=a;

p++;

printf("%d",*p);

}執行結容果如下:

7樓:匿名使用者

3當指標p被初始化時,其被賦值陣列a的首地址,即a[0]的地址p++後便指向下一個地址,指向了a[1],所以此時*p=3以後自己把**編譯一下就可以搞透了

另外要善用debug功能哦

8樓:匿名使用者

3p++後 ,p指向a的第二個元素3

main() {int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; p=a; pr

9樓:匿名使用者

結果選d。

194先換算成十進位制是404,404+9*2=422,轉成16進位制是1a6。

10樓:201求一份安逸

答案:d。

解釋:先要明白這兩個printf輸出的是地址,再是第一個printf輸出的194是一個十六進位制的數表示十進位制的404,然後要知道p+9表示p指標後的第9個位置的地址,前面有說明了int佔2個位元組,故只要在404的基礎上加18即422,然後再轉換成十六進位制輸出就是d的答案1a6。

11樓:供配電

main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p ; p=a;pri8ntf("%d",*p+9); } 次程式的結果為什麼是9?

12樓:天雲一號

我執行出來結果是10 環境是vs2008int a=,*p;

p=a;

printf("%d",*p+9);

13樓:匿名使用者

這個結果對嗎?應該是10才對。

int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a); printf("%d,%d",*a,*a[0]); } 50

14樓:匿名使用者

二維陣列

可以當成每個

元素都是一個陣列的一維陣列

比如a[3][2] 可以當作一個一維陣列a[3], 但是a[3]的每個元素回都是答一個一維陣列..

那麼就好理解了 *a是a[0],但是a[0]自身是一個一維陣列,並不是一個數

所以*a[0], 或者**a 才是這個一維陣列的首個元素的值

15樓:匿名使用者

二維陣列的首地址是

來二級自指標,二級指標就是指bai針的指標,du意思就是一個指標指向了另一

zhi個指標。

假如:int **b , *a; b = &a; 所以dao*b中存放的是指標a指向的地址值, b就是a的地址值。

所以這裡的**a 和*a就是這個道理。這裡*a就是第一行首地址的地址值

16樓:哥德**的憂鬱

a是一個二維陣列的首地抄址,*a是對a相當於進行了一次降維,所以*a是一維陣列的首地址,也就是a[0],這麼說吧你可以把a[3][2]看成這樣子, },所以a指向的是這一整個陣列,*a指向才是陣列裡的一個元素,所以再對*a進行*運算,也就是**a,才會是第一元素的值,如果不懂歡迎追問哦。

17樓:育知同創教育

二維陣列不應該是**a才能取到1嗎?

18樓:王子易

你這什麼,題目看不懂

設有定義int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 結果為7的表示式是: *(p+2)能否詳細解釋下

19樓:匿名使用者

int a=,*p=a; //定義一個陣列a,共五個元素;同時定義一個指標p指向陣列a的首地址

p -> a[0]=1 即p是a[0]的地址p+1 -> a[1]=3 p+1是a[1]的地址,下同p+2 -> a[2]=5

p+3 -> a[3]=7

p+4 -> a[4]=9

while(*p!=3) p++; //*p是取地址中的內容(資料),當*p不是3時,p++完成向後移動一個資料

當*p==3時,p當前值為 原p+1 ,即指向a[1]此時的p +1指向a[2]=5

所以,此時的p +2指向a[3]=7

即:*(p+2)==7

20樓:lzh劉振華

int a=,*p=a; //p為指標,p指向int型陣列a的首地址即 &a[0]

while(*p!=3) // *p 是p所指向的陣列的元素 ,當*p 的值是3時退出while迴圈

p++; // p指向陣列a的下一個元素。

當while迴圈結束時 p 指向 a[1]的地址,*p == a[1];

p+2 指向 a[1]下一個元素a[2]的下一個元素a[3],即p+2是指向a[3]的指標,所以*(p+2) 的值是7

21樓:匿名使用者

int a=,

*p=a; // 將首個元素地址賦給p 此時*p=1

while(*p!=3)

所以 結果為7的表示式是: *(p+2) 等價於 *(p+4)

22樓:孝感

初始時p指向a陣列的開始.

經過while(*p!=3) p++;

時p指向了3

所以p+2就是指向7這個位值.

已知int a[5]={1,3,5,7,9},*p=a;,則表示式*p+3的值是______.怎麼算的??

23樓:匿名使用者

表示式*p+3的值是4

*p是指向陣列a的指標,*p=a就是把p指向陣列a的首地址,也就是a[0]的地址。

所以*p的值就是a[0]的值,也就是1,所以*p+3的值就是1+3=4了。

不清楚的話請追問我。

o(∩_∩)o 望採納 哦 ~

24樓:葷三詩義斯

inta=,

*p=a;

//將首個元素地址賦給p

此時*p=1

while(*p!=3)

所以結果為7的表示式是:

*(p+2)

等價於*(p+4)

25樓:匿名使用者

當指標p被初始化時,其被賦值陣列a的首地址,即a[0]的地址

*p+3後便指向了a[3],

c語言 main() {int a[5]={1,2,3,4,5},b[4]={6,7,8,9},*p=a,*q=b}

26樓:半截小丑

main()

,b[4]=,*p=a,*q=b//p指向a的首地址,即1,q指向b,即6

p+=2;q+=3;//p地址後移2位,指向3,q同理指向9

*p=*(q)+3;//賦值語句,將q指向的內容加3賦給p,則p指向的值3變成12,q依舊為9

q--;//q地址前移1位,即8

*(q-1)=*(p+1)-5;//將p指向位置的下一位的內容即4減去5得-1,賦給q的前一位,則q的前一位變成-1,但q的指向位置沒有改變

printf("%d\n",*p);//輸出p的內容,即為12

printf("%d|n",*q);//輸出q的內容,即為8

} 這裡涉及到很多小知識點,如果不理解,歡迎追問,若滿意,請採納,謝謝

27樓:苗藍強令楓

inta[

]=:意思是a陣列為包含的整數陣列,

inta[

]=,*p=a:p是等效於a的整數指標,你應該這樣讀int*p=a;(*號跟著變數走)定義了一個指標等於a陣列首地址。

28樓:匿名使用者

你應該自己推導,**擋住了你的思路,再提問,這樣對你理解知識有幫助!

29樓:倫悅宜

p+=2;q+=3;p指標指向a[2],q指標指向b[3]*p=*(q)+3;把a[2]換成12

q--;q指標指向b[2]

*(q-1)=*(p+1)-5;b[1]換成-1printf("%d\n",*p);輸出12printf("%d|n",*q);8

30樓:匿名使用者

*p=a 表示指標p指向陣列a的首地址即第一個元素;*q=b指標q指向陣列b的首地址即第一個元素;

p+=2表示陣列a的第三個元素,q+=3表示b陣列的第四個元素。因此*p=3,*q=9;

*p=*(q)+3;這一句是把陣列的第三個元素修改為7;此時a=q--;此時q應指向陣列b的第三個元素

*(q-1)=*(p+1)-5;這一句是修改b中第二個元素為a中第四個元素的值減去5因此b=

一次輸出的結果應為12,8;

31樓:

想知道你寫的這個程式的意義是什麼。

自然數a b c d滿足1 d 2 1則1 d 6的值為

江蘇吳雲超 解 顯然,自然數a b c d中不能有1 否則由於1 1 2 1,1 a 2 1 b 2 1 c 2 1 d 2一定大於1 若有一個是2,則其餘三個全是3時1 a 2 1 b 2 1 c 2 1 d 2最大 而此時1 a 2 1 b 2 1 c 2 1 d 2 7 12 1 其餘三個大於...

自動檔D D1 D2 D3怎麼用

d擋為前進檔 d1 d2 d3都是前進擋,但有d1 d2 d3的變速器都為半自動試。作用只是對汽車最高時速的限制,也可說為手動檔的意思,原理和手動檔一樣。檔位越高速度越快扭力越小,反之檔位越低速度越慢扭力越大。設計半自動試變速器的另一個作用就是提升駕駛樂趣 降低駕駛疲勞的作用 自動擋好開.1,看看擋...

尼康D90 18 105 套機和佳能600D 18 135 套機哪個比較好

都是dx畫幅的機器。佳能600d操作比較容易上手。畫素比d90高。色彩也非常不錯。尼康d90都好幾年就出來了。也是個比較經典的入門機器。和600d比 600d上市的時間後些。要划算些。都是dx畫幅的機器,都是入門級,沒啥太大區別。主要的區別在於尼康適合拍風景,佳能適合拍人物。不權威地說 能用好佳能相...