1樓:匿名使用者
先回答(x++, y)括號裡是逗號(,)表示式,c明確規定它的運算是從左到右,逗號表示式有值且值為最右邊的結果,也就是左邊x++先算,再算右邊y,(x++, y)的結果為最右邊也就是y的值。
至於printf()函式的多個引數(x++, y)和y++的計算順序,則如樓上所說,可能先算(x++, y)再算y++則輸出是10,10(大多是這個結果,lz的結果也屬於這種情況)
也可能先算完整個y++再算(x++, y)則輸出變成11,10了,依賴於編譯器,不必深究。
2樓:匿名使用者
這個不需要太深追究 不同機器不同編譯器 結果可能是不同的 因為運算順序是不一定的
3樓:匿名使用者
(x++,y) 這個是個逗號表示式,返回的值為y
int main() {int x=10; int y=x++; printf("%d,%d\n",(x++,y),y++); } 我想問(x++,y)是什麼意思啊?
4樓:匿名使用者
(x++, y)它是乙個逗號表示式,整個表示式的結果是最後乙個表示式即y的值。
5樓:匿名使用者
(x++,y):逗號表示式,取後面的值
因為int y = x++;先把x加一之後賦給y,再更新x到11,所以此時y的值認為10
main() { int x=10; int y=x++; printf("%d,%d\n",(x++,y),y++); } 5
6樓:自由戰士
在主函式main中,定義
乙個整形的x並賦初值為
10,在定義乙個整形y,並賦初值為x++(因為x++是先專運算後自加,所以y=10,此屬時x=11),後面就是輸出整形了。(x++,y)是逗號運算,取最後乙個表示式的值為最終結果,y++前面已說過了。
7樓:匿名使用者
答案是 10 10
過程x=10
y=x++ y=10
輸出 第乙個%d是在(x++,y )取y y=10 x++不用看了
第二個%d是y++ 先輸版出y在加1 所以權y=10
8樓:【姬帥
在主bai函式main中,定義乙個整形的dux並賦初值為
10,在定義zhi乙個整形y,並賦初值為x++(因dao為x++是先運算後自加,版所以y=10,此時x=11),後權面就是輸出整形了。(x++,y)是逗號運算,取最後乙個表示式的值為最終結果,y++前面已說過了。
9樓:隨楓輕逝
int x=10; x=10int y=x++; y=10 ,x=11因為baidux是取值
以後zhi+1的dao
printf("%d,%d\n",(x++,y),y++); 輸出:y=10,x=11原理
內同容上
main( ) {int x=10,y=10;int a,b,c;a=--x==y?++y:--x;b=x++;c=y printf("%d %d %d\n"a,b,c)
10樓:百里莫步
main( )
{int x=10,y=10;
int a,b,c;
a=--x==y?++y:--x;
1)這裡有四個運算
符:=(賦值元素安撫)、--(自減運算子)、==(等於運算子)、?:(條件運算子),而由運算子的優先順序從高到低有:
--、==、?:、=。先計算--x後x=9,再計算等於運算子,等於運算子左右兩邊不相等,所以條件運算子第二個條件執行,即執行--x,然後x=8,也就是賦值運算子右邊等於8,所以a=8,而且同時x=8,y=10;
b=x++;x++表示在使用x之後(即先將x的值賦給b),使x的值加1,所以此時b=8,x=9,y=10;
c=y ;將y的值賦給c,所以c=10,x=9,y=10;
printf("%d %d %d\n"a,b,c)所以輸出結果為8 8 10
11樓:匿名使用者
a=--x==y?++y:--x; 這個首先x-1,然後與y比較是否相等,如果相等,y+1,如不等,x-1,最後將結果賦值給a,此時結果,a=8,x=8,y=10
b=x++; 先將x的賦值給b,然後x-1,此時 b=8,x=9
main() { int x=10,y=20,t=0; if (x==y)t=x;x=y;y=t; printf(「%d,%d\n」,x,y); }
12樓:匿名使用者
main()
把第乙個函式弄整齊之後 再看 x首先不等於y,所以 t=x這句不會被執行,然後繼續往下執行x=y,x就等於20了,在執行y=t y就等於0了
13樓:匿名使用者
你的if沒有把t=x;x=y;y=t;都括起來。。。沒括號那就只影響後面乙個,所以if (x==y)x=y if不成立所以下面程式只執行了;y=t;
14樓:少年遊
你的程式裡if後面沒有加{}來標誌範圍,那麼if只對它後面的一句起作用,碰到第乙個分號就截止,第乙個實際上只執行了x=y;y=t; 第二個實際上只執行了y=t
15樓:幻☆天芒
首先判斷x==y,為假。所以x=y不執行。接著y=t,所以y=0。所以輸出的時候,x=10,y=0.
17.執行以下程式的輸出是? main() {int x=1,y=2,z; z=x+++y; printf(「%d%d%d\n」,x.y.z); }
16樓:匿名使用者
輸出結果是223。
printf(「%d%d%d\n」,x.y.z); //這條語句存在問題:"應該是英文的,並且變數之間應該用,分隔
改後的程式如下:
main()
17樓:匿名使用者
2,2,3
z =( x++) + y
實際上等於:z = x + y; x ++;
所以:z = 1 + 2; x = 1 + 1;
18樓:匿名使用者
這個要看編譯器的,有的會看成(x++)+y,有的會看成x+(++y)。不過,一般的編譯器輸出都是前者,即2,2,3
int x=10,y; y=(x++)+(--x)+(++x); printf("%d,%d\n",y,x); 執行結果為28,11. 求解釋
19樓:匿名使用者
看了下彙編, 貌似首先先做的減法。不知道ansi c標準是怎麼規定的。
32 000e c744241c movl $10, 28(%esp)
32 0a000000
7:test.c **** int y;
8:test.c **** y=(x++)+(--x)+(++x);
33 .loc 1 8 0
34 0016 ff4c241c decl 28(%esp)
35 001a 8b44241c movl 28(%esp), %eax
36 001e 01c0 addl %eax, %eax
37 0020 ff44241c incl 28(%esp)
38 0024 0344241c addl 28(%esp), %eax
39 0028 89442418 movl %eax, 24(%esp)
40 002c ff44241c incl 28(%esp)
9:test.c **** printf("%d, %d\n", y, x);
20樓:匿名使用者
從左往右計算啊,++的優先順序高於+,第乙個先用後加,值為10,存入x,第二個先減在用,值為9,存入x,所以第一步為9+9,完後值加1,x值為10,後面不用說了吧,y=9+9+10.
很簡單的例子,int x=5;y=++x*++x;值為y=7*7,不知我說清楚沒,手機打的
21樓:匿名使用者
不同版本的c答案不一樣.你的答案是
在visual c++中除錯的結果28,11在turbo c2.0的答案是30,11在visual c++中如果有多餘2個以上的++或--運算時,從第3個開始x和前面的x的值就不一樣了.變成y=9+9+10=28.
c語言#include
22樓:go陌小潔
首先,++是單目運算子,優先順序是高於=的,所以是先執行++。
第二,x++返回值是(x+1),是表示式而非變數第三,++x的返回值是x,是變數。
謝謝採納。
23樓:匿名使用者
(一)已知 x 的值為
2, y 的值為0
則 y=++x; 的意思是
先x=x+1; (此
後x的值為3,y的值為0,)
後 y=x; (此後x的值為3,y的值為3)(二)已知 x 的值為 2, y 的值為0則 y=x++; 的意思是
先 y=x; (此後x的值為2,y的值為2)後 x=x+1; (此後x的值為3,y的值為2)--x 與 x-- 也是一樣的道理
010是八進位製數,它的十進位製數是8
x的值為8,所以輸出 ++x 的值為9
24樓:
輸出結果是:
10,10,9,9
第乙個:x--先用x,值是10
第二個:x的值還是10,這裡的x自減要等整個輸出語句完成後才會執行第三個:--y先y自減1,然後再輸出,結果是9第四個:y現在的值已經是9了
25樓:匿名使用者
10 10 9 10
x--,x,--y,y這四個引數對於printf來說是同時呼叫的,不存在先後關係
x-- 是先呼叫x,然後再做減法 就是10x 的值就是10
--y 是先做減法 再呼叫 就是9
y 的值就是10
#include
26樓:匿名使用者
#include
int main()
主要問題在這句:y+=x++*x++;
它等價於:
y+=x*x;
x++;
x++;
也就是說,y+=1;
x+=1;x+=1;
結果自然是3,2.
27樓:匿名使用者
3,2.
因為:y+=x++*x++ , x=1 y=1,相當於y=y+x++*x++ y=1+1*1=2x通過兩次自增運算為3。
實際上這種**風格簡直可以上絞刑架。
語文作文得了10分,求助10篇語文作文10分
可以使用小標題,能多給你幾分。字寫得要工整,漂亮。作文內容要獨一無二,不要太俗,內容新穎。以上是我的建議,60分的作文至少也能打上50分吧,平常多寫作文,多練練啊!其實我一直覺得,作文就是把看到的,聽到的,想到的寫下來而以,就像日記。雖然也許那樣作文的會樸實無華,但總比流水文好。我一直這樣寫作文的,...
10股送10股派10元是什麼意思
你的100股會變成200股 每10股送10股 現金100元 每10股派現10元 沒扣紅利稅,紅利稅按持股時間不同而不同,有5 10 20 三檔 除權除息後,每股 會變成4.5元。資產會因為紅利稅而變成980元 990元 995元。紅利稅不同扣除的稅金不同。買的 每10股派1元什麼意思 分紅利的,你要...
10架A10攻擊機10架F22戰鬥機10架B2轟炸機能把哈。爾。濱炸成什麼樣
那要看是什麼樣的彈藥了,如果是核彈,一架b2就能把哈爾濱夷為平地 如果是使用常規彈藥,那攻擊的主力就是那10架b2了,可以投下近200噸的炸彈,每架f22雖然也有近10噸的載彈量,但是對地攻擊並不是其長項,其攻擊效果甚至不如那10架a10,a10可以攜帶近8噸的彈藥,但是清一色都是對地攻擊裝備,所以...