int a,b,c,d,e;
a=2;
b=a++;
c=++a;
d=10*a++;
e=10* ++a;
問,bcde分別等于啥,很蒙。。。
uj5u.com熱心網友回復:
b=3c=4
d=50
e=60
uj5u.com熱心網友回復:
就就就這么簡單嗎。。。。
uj5u.com熱心網友回復:
a++是先算a,再算a+1。如b=a++,就是先b賦值a,然后在算a=a+1,所以b=2,但a是3了。++a是先算a+1,算出了結果在被賦值。如這里c=++a,前面a已經是3了,再算出a+1,就是c=4,a這時就是4。后面d,e一樣。我是這么理解的
uj5u.com熱心網友回復:
首先后++表示先賦值再自加,而先++則表示先自加再賦值,所以b=2
c=4
d=40
e=60
uj5u.com熱心網友回復:
error
uj5u.com熱心網友回復:
基礎的演算法優先級和++的意義啊uj5u.com熱心網友回復:
寫個程式測驗一下呢?編程需要多動手,多思考~uj5u.com熱心網友回復:
盡量避免這些沒意義的東東uj5u.com熱心網友回復:
關于C,C++運算式求值順序 http://blog.csdn.net/fefe82/article/details/37833767,http://bbs.csdn.net/topics/370153775uj5u.com熱心網友回復:
24
40
60
uj5u.com熱心網友回復:
能編程運行的就不要問。
uj5u.com熱心網友回復:
樓主不會結貼嗎
?(要用電腦結的)問題問的不夠清楚的話,那我再多幾句嘴:
a++ 和++ a 兩個都會對a進行自增
but:
a++運算式值取a(原來的a值),++a運算式取自增后a的值。
例如 int a=5
b=++a;
c=a++;
若輸出,則a自增兩次,故為7,b為6,c也為6。
(如果有錯誤的話,還請指正。)
uj5u.com熱心網友回復:
int a,b,c,d,e;a=2;
b=a++; //a++=2++=3, b=a=3
c=++a;
d=10*a++;
e=10* ++a;
uj5u.com熱心網友回復:
int a,b,c,d,e;
a=2;
b=a++; // b=a=2, a=a++=2++=3,
c=++a; // a=++a=++3=4, c=4
d=10*a++; // 10*a=10*4=40, d=40, a=a++=4++=5
e=10* ++a; // a=++a=++5=6, e=10*a=10*6=60
所以 a=6,
b=2,
c=4,
e=60。
上面那潭訓復,我還沒輸入完就提交了……看這條就行了

uj5u.com熱心網友回復:


VS2017里運行結果如圖,程序你可以看我上一潭訓復里的注釋。
我為了積分,竟然花時間寫這個……
學編程要多動手寫代碼吖,有問題的地方可以設定斷點單步除錯,看這些變數的值是怎么變化的,自然就懂了。
所以……請你給我點積分……
uj5u.com熱心網友回復:
我有點問題:運算子 ++ 優先級不是高于 * 嗎
那為什么 d是 40 而不是 50
uj5u.com熱心網友回復:
你說的優先級沒錯,但后置++,那條陳述句的求值結果的運算物件,是還沒有+1的那個a。
也就是說,運行這條陳述句的時候,是先用a未+1的時候的值進行運算,得到運算結果了,再對a進行+1。
如果這里是++a,運行這條陳述句的時候,是先對a進行+1,然后用+1后的a進行運算,得到運算結果,那么此時的d才是50。
uj5u.com熱心網友回復:
++a就是先+1,再用a的值。a++就是先用a的值,再+1uj5u.com熱心網友回復:
b=2c=4
d=40
e=60
uj5u.com熱心網友回復:
b=2c=4
d=40
e=60
uj5u.com熱心網友回復:
b=2c=4
d=40
e=60
uj5u.com熱心網友回復:
b=3
c=4
d=50
e=60
b = 2; c = 4;d=40; e = 60
uj5u.com熱心網友回復:
首先,你要理解a++和++a的區別。++a是先求值后賦值,a++是先賦值后求值。知道這兩個的區別后,這種題就游刃有余了。uj5u.com熱心網友回復:
寫程式單步除錯,這東西先看理論,不理解的話,上機實踐uj5u.com熱心網友回復:
b=2;c=4;
d=40;
e=60;
uj5u.com熱心網友回復:
b=a++是先用a的值賦給b,然后a自增1。b=++a是,先將a自增1,然后將a自增1后的值賦給b。uj5u.com熱心網友回復:
a++是最后加一++a是先加一再運算uj5u.com熱心網友回復:
a=2b=a=2 a=3
a=4 c=a=4
d=10*a=40 a=5
a=6 e=10*a=60
b=2 c=4 d=40 e=60
思想 是++在前,就要先改變變數再賦值,在后就順序反過來
uj5u.com熱心網友回復:
不如先學會怎么用斷點uj5u.com熱心網友回復:
a++是賦值后再加++a是加后再賦值
uj5u.com熱心網友回復:
樓主不會結貼嗎?(要用電腦結的)
問題問的不夠清楚的話,那我再多幾句嘴:
a++ 和++ a 兩個都會對a進行自增
but:
a++運算式值取a(原來的a值),++a運算式取自增后a的值。
例如 int a=5
b=++a;
c=a++;
若輸出,則a自增兩次,故為7,b為6,c也為6。
(如果有錯誤的話,還請指正。)
怎么結貼啊,剛剛看見~
uj5u.com熱心網友回復:
a++是先算后加,++a是先加后算轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229584.html
標籤:C語言
上一篇:二叉查找樹
