查看完整版本: 幫幫我做這題
頁: [1]

dk7410 發表於 2009-4-24 11:42 PM

幫幫我做這題

新手有點不會
假設x,y,z的初始值都為1,預測下列運算式的值
z = ++x-y++;
z = z + x++ + ++y;
如何撰寫程式??
好有 ++x  跟 x++ 差在哪裡可以跟我說一下嗎
書寫的不太清楚
謝謝各位大大<div></div>

yang-meimei 發表於 2009-4-24 11:45 PM

好難喔..我離開學校已經很久了...看不懂...

include 發表於 2009-4-24 11:52 PM

++放在前後會出現傳值跟運算的先後差別

vagile 發表於 2009-4-26 03:15 AM

z = ++x-y++;
z = z + x++ + ++y;

++x 他會先把x+1
x++是先讀x再+1

所以說第一題  z = ++x-y++;
會變成 z= 2-1
做完之後 x和y都是2, z=1
第二題 z = z + x++ + ++y;
假設是從上題繼續做下來 x=2,y=2,z=1,
z= 2 + 2 + 3 =7
此時 x=3,y=3,z=7
大概是這樣子

superppp 發表於 2009-4-27 02:02 AM

z = ++x-y++;你就用唸的,z等於1加x減去y再減1=(1+x)-y-1
z = z + x++ + ++y;一樣,z等於z加x再加1再加1加y z=(z+x)+1+(y+1)<br><br><br><br><br><div></div>

vagile 發表於 2009-4-27 03:37 AM

喔喔
原來我觀念也錯了
真是非常感謝

風城翔羽 發表於 2009-4-27 09:02 PM

z = (((++x)-y)--); <----------因為-(y++)=>-(y+1)=>(-y)-1=>(-y)--
z = ((z + x)++) + (++y);

++在前面 加先做                                所以(++x)
++在後面 變數會先被拿去做運算 所以(對x的運算結果)++

不過寫程式的時候,除非有特殊要求,不然盡量不要這樣做,
因為這是非常沒有可讀性的撰寫方式,且在不同語言,不同編譯器,結果也可能不一樣
頁: [1]