台灣最大程式設計社群網站
線上人數
792
 
會員總數:243161
討論主題:187981
歡迎您免費加入會員
討論區列表 >> C/C++ >> 關於c++ 的自增运算符 ++ 小弟有問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於c++ 的自增运算符 ++ 小弟有問題
價值 : 5 QP  點閱數:171 回應數:5

樓主

努尼
門外漢
0 1
10 2
發送站內信

#include <iostream>
using namespace std;

int main()
{
int a = 21;
int c ;


c = a++;

cout << "Line 1 - Value of a++ is :" << c << endl ;

cout << "Line 2 - Value of a is :" << a << endl ;

c = ++a;

cout << "Line 3 - Value of ++a is :" << c << endl ;
return 0;
}

如上述: " cout << "Line 1 - Value of a++ is :" << c << endl ; " 以這段程式碼來說,上面不是已經敘述 c = a++

我的問題是" cout << "Line 1 - Value of a++ is :" << c << endl ; " 這段裡面的 c 答案 為什麼還是21呢??

還有 "cout << "Line 2 - Value of a is :" << a << endl ; "這一段的a 就等於22呢??

a++不是等於a的值+1嗎??




搜尋相關Tags的文章: [ c++ ] ,
本篇文章發表於2018-06-15 14:28
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

努尼
檢舉此回應
#include <iostream>
using namespace std;

int main()
{
int a = 21;
int c ;


c = a++;

cout << "Line 1 - Value of a++ is :" << c << endl ;

cout << "Line 2 - Value of a is :" << a << endl ;

c = ++a;

cout << "Line 3 - Value of ++a is :" << c << endl ;
return 0;
}

如上述: " cout << "Line 1 - Value of a++ is :" << c << endl ; " 以這段程式碼來說,上面不是已經敘述 c = a++

我的問題是" cout << "Line 1 - Value of a++ is :" << c << endl ; " 這段裡面的 c 答案 為什麼還是21呢??

還有 "cout << "Line 2 - Value of a is :" << a << endl ; "這一段的a 就等於22呢??

a++不是等於a的值+1嗎??

第一次po 好像沒人看得懂,我的問題如上,在po一次
本篇文章回覆於2018-06-15 14:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小魚
檢舉此回應
a++是先指定再加,

c = a++;
可以拆成兩行
c = a;
a++;

++a是先加再指定

c = ++a;
會變成
++a;
c = a;
本篇文章回覆於2018-06-15 19:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

努尼
檢舉此回應
也就是說c=a++ 若第一次顯示c的答案,將會是尚未+1的c嗎??

而第二次如果顯示a跟c的話就會是+1的a跟c值嗎??
本篇文章回覆於2018-06-16 12:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小魚
檢舉此回應
差不多是這個意思,
不過第一句有點問題,
+1的是a不是c

= 是指定運算子 將右邊的值指定給左邊
== 是比較運算子,接近我們生活中所說的 等於 的概念
本篇文章回覆於2018-06-17 16:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Raymond
檢舉此回應
a++ 跟 ++a 都增一, 但『a++』得到的是增一的值, 而『++a』得到的是增一的值.

如果把它們當作函式來看,'a++' 的意思是:


'++a' 的意思是:


在單獨使用的情況下﹐也就是說, 如果你的目的是「a = a + 1;」, 那在理論上 ++a 的效率會比 a++ 好. 雖然以內建類型來說它們不會有什麼分別. 但如果 'a' 是個有超載定義 ++ 運算子的 class 物件, 前置跟後置的效率就有可能會有差.



本篇文章回覆於2018-06-20 08:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.