1樓:万俟永芬俎水
x=y=1; //x=1,y=1
z=x++,y++,++y; //逗號運算子的結合性是從左至右,因此先將x的值賦值給z,z=1,然後x自增
//x的值變為2,然後y++,++y,y自增了2次,所以y的值變為了3.
//因此,最終x=2,y=3,z=1。
2樓:獨希榮胡環
x=y=1;
x=1;y=1;
z=x++,y++,y++;
z=x++;y++;++y;
z=x;x++;y++;++y;
z=x++,y++,++y;是一個逗號表示式;逗號的運算優先順序是最低的,所以先運算z=x++;
而逗號運算式是從左向右算的也就是說z=x++,y++,++y;這個整體表示式其實就是++y當然與本題無關
3樓:仍曼華詩緞
main()
故輸出的結果為2,3,2
注:1.z=x++,y++,++y;是一個逗號表示式2.要理解前自加與後自加的區別
4樓:北印枝路綢
x=y=1;
x=1,y=1
z=x++,
z=2y++,
y=2++y;
y=3所以
x=2,y=3,z=1
x++的意思就是
x=x+1
先用後加
++y的意思也是y=y+1
但是先加後用,
你這裡沒有區別,如果有迴圈的話有會看出區別了
#include "stdio.h" main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); }
5樓:翥甾天下
#include "stdio.h"
main()
其中x++是表明在執行完z=x後x才會自動加一,z=x++這條語句執行完後z=1,x=2
y++也是在這條語句結束後才會加一,這時y=2;
++y,是在這條語句執行前y自動加一,這時y=3所以結果會是2,3,1
給你舉一個例子:
int a=b=0;
a=++b;因為++b是在這條語句執行前先自動加一,所以這條語句結束後a=1,b=1
a=b++;上面a和b都=1了,這條語句執行後執行b++,所以這條語句結束後a=1,b=2
6樓:匿名使用者
原因就是運算子優先順序的問題,就像樓上說的:逗號運算子的級別最低,比等號還低
所以這個語句:z=x++,y++,++y;實際上等於:(z=x++),(y++),(++y);這樣寫的話相信樓主就知道為什麼z=1了吧
樓主認為z應該是3的原因應該是把z=x++,y++,++y;當成z=(x++,y++,++y);了
7樓:匿名使用者
反彙編過程如下:
0040106e mov dword ptr [y],1
00401075 mov eax,dword ptr [y]
00401078 mov dword ptr [x],eax
0040107b mov ecx,dword ptr [x]
0040107e mov dword ptr [z],ecx
00401081 mov edx,dword ptr [x]
00401084 add edx,1
00401087 mov dword ptr [x],edx
0040108a mov eax,dword ptr [y]
0040108d add eax,1
00401090 mov dword ptr [y],eax
00401093 mov ecx,dword ptr [y]
00401096 add ecx,1
00401099 mov dword ptr [y],ecx
1、逗號分隔表示式,賦值符號的優先順序高於逗號。
2、可以看到逗號分隔的語句,只是從左到右執行。並不是像函式引數那樣從右到左壓棧。
8樓:匿名使用者
{int x,y,x; /* 初始化三個整形變數 */
x=y=1; /* 對x,y賦值 為1 */
z=x++; /* z=x++ 給z賦值為x的值1,然後x自加1,x變為2,*/
y++; /*y++ 等價與 y=y+1,所以y自加1,*/
++y; /*++y又自加1,最後y值為3 */
printf(" %d,%d,%d ",x,y,z);
} 最後補充 z=x++;y++;++y;之間要用分號,用逗號是語法錯誤!!!!!!!!
9樓:匿名使用者
x=y=1;//x=1 y=1
z=x++,y++,++y//語言z=1(x=1),y=1+1,y=1+2
雖然是x++ 但是如果是++x的話 y=2了所以x=2,y=3,z=1
10樓:匿名使用者
int x,y,z;
x=y=1;
//x=1,y=1,z未知
z=x++,
//x=2,y=1,z=1
y++,
//x=2,y=2,z=1
++y;
//x=2,y=3,z=1
c語言:main()?{int x,y,z;? x=y=1;? z=x++,y++,++y;? printf("%d,%d,%d\n",x,y,z);}
11樓:聲金普翰
#include
void
main()
執行結果是2,3,1.
x賦給z後再自加,z為1,x為2,y連續加兩次為3。
main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); }
12樓:匿名使用者
x=2 y=3 z=1
z=x++,y++,++y;
先++y再y++得y=3
z=x++先把x=1賦予z,再x++,因為x++是先用後加
13樓:
考查 自加及逗號運算子
x=2y=3z=1
14樓:匿名使用者
2,2,1
z=(x++)=1,x=2;
(y++)=1,(++y)=2。
main() {intx,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,x); }
15樓:獨秀榮何琬
main()
故輸出的結果為2,3,2
注:1.z=x++,y++,++y;是一個逗號表示式2.要理解前自加與後自加的區別
main() {intx,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z);} 請高手詳細解答為什麼
16樓:
x=y=1; //x=1,y=1
z=x++,y++,++y; //逗號運抄算符的結合性襲是從左至右,因此先將x的值賦值給z,z=1,然後x自增//x的值變為2,然後y++,++y,y自增了2次,所以y的值變為了3.
//因此,最終x=2,y=3,z=1。
17樓:匿名使用者
x=y=1; <=等價
抄=> x=1;y=1;
z=x++,y++,y++; <=等價=> z=x++;y++;++y; <=等價=> z=x;x++;y++;++y;
z=x++,y++,++y;是一個逗號表襲達式;逗號的運算優bai先級是最低的,du所以先運算z=x++;
而逗zhi號運算式是dao從左向右算的也就是說z=x++,y++,++y;這個整體表示式其實就是++y當然與本題無關
18樓:匿名使用者
x=y=1; x=1,y=1
z=x++, z=2
y++, y=2
++y; y=3
所以 x=2,y=3,z=1
x++的意思就是 x=x+1 先用後加
++y的意思也是y=y+1 但是先加後用,你這裡沒有區別,如果有迴圈回的話有會看
答出區別了
19樓:***x櫻
x++了一次
y++了兩次
請高手幫我解籤,請高手幫我解籤!要詳細
你求的事業,我就用白話解釋了。三四籤 中籤 上籤 古人 桃園結義 未宮 詩曰 行藏出入禮義恭。言必忠良信必從。心不了然且靜澈。光明紅日正當中。從本作聰。言聰有作矢必忠良志必同。中有作空。詩意 此卦紅日當空正照之象。凡事遂意也。解曰 心中無事。秋水澄清。不須疑惑。事自然成。家宅 清吉。自身 安。求財 ...
請高手回答汽車噴漆的詳細步驟
汽車噴漆具體步驟如下 1 車體作防鏽及內部噴塗 視車身情況由鈑金工完成。2 打磨及修飾斜邊 使用p60 180 砂紙打磨車身上經過鈑金修補及需要原子灰的地方。3 除塵 清潔 使用壓力槍及除矽清潔劑清除車身上的微塵及汙漬。4 貼護 使用反貼技巧貼上遮蔽紙。5 塗裝底漆 混合4 1紅底漆及施噴1 2層打...
請高手說下練習Breaking的詳細步驟 本人沒有任何基礎
我不來複製的,平我學的經驗來 哈子,初學者力量要好,不好的話就練。每天練上肢力量還有腰腹力量,其二要壓腿拉韌帶。期間試著倒立,先靠牆,再籬牆。能堅持6 8秒就可以了,注意腿要直。然後練撐。學舞步跟著 等這差不多的你就應該會一些freeze了。學powermove還需要過程,本人不推薦自學,找專業的老...