是否在剛學習宣告變數時,想要使用了那些懶人包( a=a+1 改成 a+=1 或 ++a );😙😙
但應用上輸出結果卻時常不如預期,不知道錯在哪裡;😕😖
誤打誤撞的對了,也就這樣了,對於同樣錯誤的隔壁;😓😒😑😐
兩兩互看、四目對望的也不知道錯在哪;😵😵
即便改對了,完全像作夢似的完全不記得夢境內容,說不出個所以然;😭😣😱
既是交不了作業覺得煩躁又覺得程式困難重重,大大的打擊信心(桑勳~~);😬💔💢💣
以下示範了這些懶人包(這些可執行的寫法),靜靜的思考一下,搞清楚;😤😤😤
弄懂了,搞不好在其他地方 ,也能運用呢,也可以自行執行看看喔~~!;😀😀😀
#include<iostream>
using namespace std;
int main()
{
int a = 1 , b = 0 ;
b=a++;//先執行 b=a 後 a++(即a=a+1),a=2 b=1
cout << a <<endl;// a=2
cout << b <<endl;// b=1
cout << a++ <<endl;//a會先傳回原來的2,但實際上a=a+1, a=3
a++;//a=a+1, a=4
cout << a++ <<endl;//a會先傳回原來的4,但實際上a=a+1, a=5
cout << +a <<endl;//無運算, 保持不變 a=5
cout << ++a <<endl;//a=a+1, a=6
b=++a;//b= (a=a+1), a=7 b=7
cout << a <<endl;//保持不變, a=7
cout << b <<endl;//保持不變, b=7
cout << ++b <<endl;//b=b+1, b=8
cout << b++ <<endl;//b會先傳回原來的7,但實際上b=b+1, b=8
++a;//a=a+1, a=8
cout << a <<endl;//保持不變, a=8
//👉💭 a++ 在運算子裡面的優先等級高於 ++a 喔~~~ 💭👈
cout << a++ + ++a << endl;
//a會先更新為 a++ 傳回的 8 (實際上a=a+1, a=9)加上
//實際的 a=9 (a=a+1, a=10), 故b=8+10, a=18
cout << a << endl;// a=10
cout << ++b + b++ << endl;
//雖然會先傳回 b=9(但之後繼續參與運算的是實際上的b=b+1, b=10)
//加上剛被前算式 b++ 更新的 b=10, b=10+10=20,然後再進行 ++b, b=b+1, b=21
cout << b << endl;// b=11
return 0;
}