c語言中語句“y x1”是怎麼執行的

時間 2021-08-11 17:19:59

1樓:埃德蒙

++放後邊 x先參與“-”運算 計算結果賦給y 之後x值自增1。

如果x=3,“y=x++ -1”之後y=2 x=4就是要記住一個規則:

++在變數之前時 值先自增1 再參與其他運算,++在變數之後 先參與其他運算 變數值再自增1

2樓:關燁韋

先執行x-1,然後再賦值給y,然後再x++。

如果換成y = ++x - 1;就會先自增,再運算。

3樓:匿名使用者

y=x++-1的彙編**如下:

mov eax,dword ptr [ebp-4]sub eax,1

mov dword ptr [ebp-8],eaxmov ecx,dword ptr [ebp-4]add ecx,1

mov dword ptr [ebp-4],ecx不知道你能否看的懂。簡單的說,dword ptr [ebp-4]表示的是x的地址,dword ptr [ebp-8]表示y的地址。mov是移動的意思,也就是說把x的值移動到eax中,然後減一,再把它賦值給y;……好好學習彙編吧,這些問題完全可以自己看**解決!!!

4樓:

先x自加 然後用x原來的值-1賦給y

比如先開始x=5

執行完 x=6 y=4

5樓:我愛吃油旋

“y=x++-1”應該等同於

“y=x-1;

x=x+1;”

即y的值是x-1後的賦值,然後x再自加1.

6樓:du小蝦

x=4;

y=x++-1;//執行完後,y是3,x是5,注意x++先運算後加一

c語言中 y=x++ -1和 y=++x -1有什麼區別?

7樓:匿名使用者

**執行先後順序的區別

++代表+=1,在變數前面例如++x-1代表著直接在這裡將變數值加上1,故y=6-1=5

而在變數後面,x++-1代表著在執行完這一行再予以加1,故y=5-1=4

#include

int main()

8樓:匿名使用者

你可以觀察啊

x++是先引用x,再++

++x 則是 先做++再引用x

9樓:匿名使用者

加在後面慢動作 比如x=3,前面y=4,後面是5,運算先後問題

y=++x-1c語言中是什麼意思

10樓:匿名使用者

y = (++x) -1

x = x + 1

y = x - 1

11樓:焚城沸雪

y=(++x)-(1c) //1c是16進位制數

c語言中x=1;y=x++是什麼意思

12樓:傳小奇

int x=1;

y=x++; 表示先把 x的值賦給y,然後x自身加一。

最後的結果是 y=x=1;

x=x+1=2;

13樓:

想弄清答案,來

必須得先知道x++, ++x, x--, --x的區別源x++和x--意思是bai

先使用,使用以後在du+1

比如題主提問的。x=1; y=x++

分三個步驟zhi:

x初始化為dao1

給y賦值為1

x++, x+1

++x和--x是運算x+1,x-1, 後參與運算例如x=1;y=++x

分三個步驟:

x初始化為1

x++, x+1

給y賦值為2

14樓:修者世界

x=1;

y=x++;//意思是y=x+1;

15樓:匿名使用者

x = 1

y = 1

x +1

c語言while(x++!=(y-=1))是什麼意思

16樓:匿名使用者

不等於號左邊取x的值,右邊取y=y-1的值,在進行邏輯判斷不等於操作獲得布林值,這個布林值是判斷迴圈繼續與否的關鍵,之後x值加1

17樓:尤慕

把y的值減1與x比較,如果兩者不等,則進入迴圈體並把x的值自增1.

18樓:oo信步天涯

判斷y=y-1的值是否等於x,如果不等於則執行迴圈體,如果等於則退出迴圈,判斷之後,不管是否等於,專都讓

屬x自加1(即x=x+1)。舉個例子說明下吧,假如執行while語句前x的值為3,y的值為6:執行到while時,由於是x++,自加運算子++在x的後面,所以先取x的值3,即不等號!

=左面的值為3,不等號右面的值為6-1=5,3不等於4,所以表示式x++!=(y-=1)的值為真,判斷之後x的值自加1變為4,同時執行迴圈體;迴圈體執行完之後,再次判斷,此時不等號左面的值為4,右面的為y=5-1=4,此時x++!=(y-=1)的值為假,判斷之後x=4+1=5並退出迴圈。

希望能對你有點幫助!

19樓:匿名使用者

首先了解下優先順序與結合性

1.--為自減運算子,第二優先順序,自右至左2.x--這個表示式內:先使用x的值

容,接著x=x-1;

整個表示式的值為x

看while(x--)

首先①判斷x--這個表示式的值是否為0(即x的值),如果為0,不執行迴圈體

但仍然執行x=x-1;

例如:int x=0; 則不執行迴圈體,x最終值為-1②如果x的初值不為0,判斷x--這個表示式的值是否為0,(不論是否為0)x=x-1,

如果x--表示式的值不為0,在執行迴圈體.(真繞...看例子)例如:int x=3;

while(x--)

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

①3-->不為0-->x=x-1-->x=2執行迴圈體 while

②2-->不為0-->x=x-1-->x=1同上③1-->不為0-->x=x-1-->x=0同上④注意 此時x=0,將不再執行迴圈體,但x=x-1;-->x=-1

(建議你逐步除錯,很清晰)

20樓:匿名使用者

y=y-1;

while(x != y)x++

c語言中 y=((x=3*y,x+1),x-1)是什麼意思

21樓:寂寞的哥布林

這是bai考試題?

考逗號表達du式嗎?

你這個問題本身zhi

就有問題,你dao的y沒有初值。內我只能假設容y=1分析給你看

首先計算x=3*y,結果賦給x,假設是3;

然後計算x+1,用上面的結果就是3+1了,就是4.

逗號表示式取最右邊表示式的結果賦值。那麼

(x=3*y,x+1)

這個表示式的結果就是4.

在計算y=(4,x-1),你應該就明白了。x剛才是賦值過為3了,那麼x-1=2;同理,

y=((x=3*y,x+1),x-1)

實際賦值為y=2,同時x有第一個表示式賦值為3.

22樓:夜禮服假面

y=((x=3*y,x+1),x-1)可以拆成多個語句,這樣你就理解了

拆分為x=3*y;

y = x +1;

y = x - 1;

c語言中a=(--x==y++)?--x:++y;什麼意思

23樓:漠影歌

這是一個三目運算子,如果 --x 與 y++相等的話,把--x的值賦給a,否則,將++y的值賦給a;

在這裡,--x是先對x進行自減1再執行語句,y是再執行完語句再執行y自加1,也就是說現在解析出來的表示式為 x - 1 == y ,後面同理!

24樓:鱷魚與德德

中文版 就是 判斷 --x 是否等於y (y++是算完後加 忽律) 假如等於 就 a=--x, 假如不等於 a=++y

25樓:麼麼噠

x=x-1;

if(x==y)

else

大概和這個差不多

26樓:匿名使用者

--x就是x減一;++y就是y加1,這個主要考察c語言語句優先順序

27樓:匿名使用者

如果 x=y+1 執行 x-1 否則 y+1

28樓:歧凌蝶肇戈

x=a+b表示式使得x=6,其返回值為x(x,b+c)是逗號表示式,逗號表示式的值為最後一個子表示式的值所以

y=b+c

y=10

29樓:匿名使用者

這個是c語言中唯一的三目運算子。

string1 ?a : b

意思是說:當string語句判斷是真的時候,該語句使用結果a,否則是用結果b。

30樓:匿名使用者

這個是一個條件語句的簡寫

就相對於:

if aa

belse

c如果aa為真,則執行b,否則執行c

31樓:匿名使用者

(!x++||y--)

這個邏輯大概就是

x等於0或者y不等於0最後表示式結果為1

++和--是後做的

還有如果x為0,y就不--了

c語言問題 有一個分段函式y=x-1(x<0),0(x=0),x+1(x>0). 怎麼程式設計?

32樓:吾玉蓉苑燕

switch語句對應離散引數,對此例並不適用,除非你的x限定為了整型,建議用if

else

ifelse控制。像那個樓上的,基本上錯誤一大堆······#include

intmain(void)

else

if(x==0)

else

if(x>0&&x<10)

else}

33樓:煉獄丿魔

y=x-1(x<0),0(x=0),x+1(x>0)

main()

C語言中的if語句的執行順序是怎麼執行的?巢狀時怎麼組合,花括號的位子怎麼放

橙心橙願 if a else if b else if c else 從上往下執行,如果不滿足調價則執行下一個if條件語句,如果滿足條件就執行當前條件下的程式,執行完畢不會執行剩下的else,可以有多個else if,但只有一個if和else 有問題請追問 太原大海 關於if巢狀有一句話很重要 el...

c語言中for語句是怎麼用的,C語言語言中FOR的用法

for語句通常具有如下形式 for statement1 statement2 statement3 這裡,statement1 statement2和statement3是一般的語句。其中statement2應具有布林型別,但在c中具有int型別 因為c語言不支援布林型別 這段語句的執行流程如下 ...

關於C語言for的語法,c語言中for語句是怎麼用的

i 1表示把i的值設為1,i 表示i自加1即i i 1 i 5應該是for的判斷表示式吧 for i 1 i 5 i 的意思是把i初值設為1,這個設初值在整個for迴圈只會執行一次,每次執行前都會判斷i 5是否成立,如果成立就執行語句,然後i 就是i自加1,不成立則跳出迴圈。然後判斷i 5是否成立 ...