int x 5,y 1,p,則執行語句p 3,p y,x x p後變數x的值

2021-04-17 12:33:18 字數 3097 閱讀 4064

1樓:金色潛鳥

int x=5,y=1,*p=&x; // 這時 p 指向來 變數源 x.

*p=3; // 使bai x=3 了;

p=&y;// 讓 p 指向 變數 y; *p 值等於 y 的當前值 1;

x=x+*p; // x=3+1; 變數 x 的值du變成 4 。

回答:zhi

執行語句這dao幾個語句後,變數x的值 是 4。

設有int x=5,y=1,*p=&x;則執行語句*p=3;p=&y;x=x+*p;後,變數x的值

2樓:匿名使用者

*p=3;//x值被修改為3

p=&y;//指標p指向y

x=x+*p;//x=3+1,所以最終x值為4

3樓:莊政警

最終x的值為4

int x=5,y=1,*p=&x;

*p=3; // x=3了

p=&y; //p指向y了

x=x+*p; //x=x+1 x=3+1==4 最終x=4

c語言中則執行語句 q=(*--p)++ 後,變數 q 的值為多少?

4樓:匿名使用者

變數q的值bai

為4.解釋一du下,根據宣告來說,p是指向zhi陣列x第二個元素dao(3)的指標,回這個q=(*--p)++計算順序

答是q=(*(--p))++,即,先對p進行自減運算,自減以後p指向陣列第一個元素(4),然後對這個指標取值得到4,然後是字尾自增運算,結果是p指向的元素自增了,但是返回值為自增之前的值,即4.

5樓:匿名使用者

q為4首先p是一個指向x[1]的int型指標先運算--p,怎p向前移動一個int,指向x[0]的地址*--p就是x[0]的值

把x[0]的值賦給q之後,再對x[0]自加最後q是4,x[0]變成5

6樓:匿名使用者

(*--p)++

先進性--p的運算,開始p指向x[1],執行--p後,p執行x[0](*--p)得到x[0]

(*--p)++相當於x[0]++

變數q的值為4

7樓:xc望心闖天下

答案是4,答案是4,答案是4,

設有說明int x,*p=&x;要實現x的內容加5,則下面的語句 是錯的。

8樓:匿名使用者

要實現x內容加五

bai, 最基礎du的就是

x=x+5;

而p=&x; 這樣 *p和x等價

於是zhi擴可以把其中一dao個x換成

專*p, 也可以兩個都換成*p. 合法

屬的就有

*p=x+5

x=*p+5

*p=*p+5

所以ia和b是正確的.

而c中 *&x 和x是一樣的. 也正確.

於是選d

c語言中int x=5 *p=&x *p+1的值

9樓:匿名使用者

c是指標變數,&p是表示其地址;而x未賦值,所以&(x+1)是錯誤的 if(x=y)中的x

10樓:匿名使用者

相當於:x+1;

結果為:x=6

11樓:好程式設計師

你寫錯了吧,感覺有點亂,你看看錯了嗎

c語言題目,已有定義 int x,y=10,*p=&y 則能使x的值也等於10的語句是

12樓:

a選項是錯的,baix是整型

du,p是指標型別,賦值之後x的值

zhi是daoy的記憶體地址,不會是10。專b選項是錯的屬,同樣,執行賦值之後x的值是p的記憶體地址,不會是10。

c選項是錯的,因為這個賦值過程和a選項的賦值過程是等價的,所以錯誤的原因也是一樣的。

d選項是對的,沒有為什麼。

13樓:匿名使用者

x是整數,p,&y都是整型指標,不能相互賦值,其他三個都是語法有問題

14樓:匿名使用者

int *p=&y; --------------》p指向y的指標,×p即為指標變數 == 10

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

15樓:匿名使用者

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

了.#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;}

16樓:匿名使用者

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

如果是++*p就是2

17樓:匿名使用者

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

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

18樓:匿名使用者

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

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

19樓:

這好解釋啊,因為++是後++,要等到把(*--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;}

C語言中intx5,y5,z5執行語句xy

因為 運算 符的優先順序copy低於 所以 bai,先算y z 5 5 10 x y z x 10 x x 10 5 10 5 表示取模後,結果du還賦值給左zhi變數 表示模運dao算,即 整除取餘數。已知int x 5,y 5,z 5 執行語句x y z 後,x的值是 x y z x x y z...

定義 int x 3,y 4,z 5則表示式 x y z 1 y z

c語言的優先順序 從上到下依次遞減 醋 初等,4個 指向結構體成員 結構體成員 壇 單目,9個 負號 型別 指標 取地址 sizeof長度 酸 算術,5個 減味 位移,2個 灌 關係,6個 等於 不等於 味 位邏,3個 按位與 按位異或 按位或 落 邏輯,2個 邏輯與 邏輯或 跳 條件,1個,三目 ...

已知int x 10,y 20,z 30以下語句執行後x

if x y z x 如果x y 執行z x,因為x不大於y,所以z x這句話不執行,繼續向下執行 x y x 20 y z y 30 z還是原來版的30。已知int x 1,y 2,z 3 以下語句執權行後x,y,z的值是 if x y z x x y y z a x 1,y 2,z 3 b x ...