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是否成立 ...