設有int p,a 2,b 1則執行以下語句p p a b後,a的值為多少,為什麼

2021-04-18 03:49:48 字數 2447 閱讀 9823

1樓:匿名使用者

3因為p是指標,指向a的位址,那麼*p即是p指向的位址的值改變,而p的位址就是a,所以a的值就發生了改變。

2樓:匿名使用者

a=3因為a的位址被p獲取後

p將a的內容賦為a+b,也就是3

設有inta=2,b=1,*p=&a;則執行語句*p=3;a=a+b;後,變數a的值為

3樓:匿名使用者

int a=2,b=1,*p=&a;

*p=3;//因為指標指向a,所以此時相當於a=3a=a+b;//a=3+1

所以a=4

4樓:

4。最後a的值是4。

執行該程式段後,a的值為

5樓:狸愛窩吧

a的值為11 *p相當於變數a, *p的值為10

記得採納啊

若有說明 int a=2;*p=&a,*q=p;則一下非法的賦值語句是?

6樓:匿名使用者

da是整型數,

int *p,*q定義了指標,

p,q是指向整型的指標。

p取得a的位址內

容,而q取得p的位址

p,q是指標(也就是乙個位址),而*p和*q是這個指標指向的整型數值(存放在這個位址的值)。

a)把q的位址賦給p,則p和q完全一樣了,都指向乙個數2b)把q中資料給p

c)把q中資料給a

d)a中資料是2,不能夠給乙個位址。除非*q=a;

已經int b[]={1,2,3,4},y,*p=b;則執行語句y=*p++;後,變數y的值為____

7樓:匿名使用者

//看下這個程式你就知道是怎麼回事

了.#include

#include

void main()

,x,y,*p=b;

y=*(p++);/*字尾自增的專操作,賦的值是未自增的*/x=*p;/*這裡的p已經自增了屬.*/

printf("%x\t%x\t\n%x\t%x\t\n",b,y,p,x);

getch();

return;}

8樓:匿名使用者

*p++的值是*p,所以y=1,但執行完*p++後變為2.

如果是++*p就是2

9樓:匿名使用者

*p=b,取到的是b的首位址;

y=*p++,y取完p的值後再自增1;

10樓:匿名使用者

*p=b,p指向b的首位址,*p++=*p,運算後加一;

已知:int a[]={1,2,3,4}, y, *p=a;則執行語句y = (*++p)--;之後, 陣列a各元素的值變為?

11樓:匿名使用者

已知int a=, y, *p=a;則執行來語句y = (*++p)--;之後自, 陣列a各元素的值變為1,1,3,4 。

標準函式int(x)其基本功能是得到乙個不大於x的最大整數,如int(3.59)=3,int(-2.01)=-3。

int函式是乙個用途很廣的函式,在教學中能有目的的分列其使用技巧。

c語言沒有規定各種整數型別的表示範圍,也就是說,沒有規定各種整數的二進位制編碼長度,對於int和long。

12樓:

b正確,選b。++p使p指向了2,*++p就是a[1],(*++p)--就是a[1]--。變數y的值是2,y=a[1]--;是把a[1]的值賦給y後才對a[1]作減一運算。

13樓:匿名使用者

執行過程是p++,然後y=*p;然後(*p)--。

即p的指標位增加一,然後賦值,最後指標對應值減一,即y=a[1],然後a[1]=a[1]-1;

綜上答案是b、b

14樓:匿名使用者

先++p,p指向a[1],

再*p,=2;

賦給y,y=2;

最後*p=2,--後,*p=1

所以是b b

c語言 定義則執行y=(*--p)++後,y的值是

15樓:

這好解釋啊,因為++是後++,要等到把(*--p)的值賦給y後(*--p)的值才會增1。所以結果是y=1,a[0]=2。你可以用下面的**驗證:

int main(void),y,*p=&a[1];

y=(*--p)++;

printf("%d %d\n",y,a[0]);

return 0;}

若有說明intp,a1,b以下正確的程式段是

這個,不在於 p b 還是 p a 關鍵是之前的語句 p b 也就是讓p指向了變數b,但是b中,沒有讓p指向某個變數,也就是p是個野指標,語法上雖然沒錯,但是實際執行的話,有風險的 因為在b中p指標沒有初始化。在d中p被初始化後指向b的位址所以可以用。若有說明 int p,m 5,n 以下正確的程式...

inta3,b2,c1則語句abc執行後b的值為

那個是條件表示式,因為沒乙個是0,所以結果為真,所以是1 人家問得是最後b的值而不是整個表示式的值 所以答案為2 若已定義 int a 3,b 2,c 1 則語句 a b c 執行後b的值為 這是短路原則,只要有乙個為真則整體就為真了,所以計算出 a後判斷他是true,所以 b c就不會計算 c語言...

假定a和b為int型變數,則執行以下語句後b的值是 a 1 b 10 do b a awhile b

額 一開始我被糊弄抄到了 後來用printf一輸出才發現原來錯得糊弄離譜啊 b 10 a 1 b a 等價於b b a 所以b 9 a 所以a 2 重頭戲來啦 while b 0 嘿嘿 注意是 號哦 b 0 是先用b的值與0比較大小 再b自減1 也就是說9 0 當然是假啦 所以就退出迴圈 又b要自減...