口號:今天也要元氣滿滿哦!
分類:
(雖然看起來很多,但是仔細了解之后會發現因為彼此之間沒有太准確的聯系,所以還是蠻好記憶的)
算術運算符:
定義:
算術運算符就像是表面的意思,要算術的。用於各數值運算,包括+ - * / 還有求余,也就是%(模運算)。
詳細描述相關細節和注意部分:
1.加減乘除就是我們簡單上理解的加減乘除了,不過關於除(/)如果操作數都是整型時,那么結果也是整型,除不開的話會吧=把小數部分直接省掉。但如果兩個里面至少有一個實型(不管有沒有帶小數點輸入,它是實型就代表它是可以被理解為有小數點的)。
2.%模運算參與運算的操作數必須是整型的,結果是相除后的余數。
3.兩個 - 不能緊挨在一起,否則會被理解為另一種運算符(自減運算符)所以要用空格分開或者是括號分隔,如- -a或-(-a)。
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int a,b; 5 cout<<"輸入整型變量a:"; 6 cin>>a; 7 cout<<"輸入整型變量b:"; 8 cin>>b; 9 cout<<"a+b="<<a<<'+'<<b<<'='<<a+b<<endl; 10 //其余的運算符的就不寫了都是類似的 11 cout<<"double(a)/b="<<double(a)<<'/'<<b<<'='<<double(a)/b<<endl; 12 return 0; 13 }
優先級說明:* / %優先級高於+ - ,但高的和高的之間優先級是相同的,如/和%之間,+和-之間。
增量運算符:(優先級高於算術運算符)
解釋:主要我們常見的++ 和--表示操作數自增或者是自減的行為。但是符號的位置對最終的結果都有着影響。
本po主主要在百度上搜索了一下,就拿一個例子來說明吧. let's go!!!
如:x=10;y=++x;
答案:y=11(也就是說當兩個+在前面的時候先進行等號右邊+1,也就是x+1然后再賦值給y。)
x=10;y=x++;
答案:y=10(關於這個理解我一般都是覺得y=x++嘛,先理解為y=x,也就是現在y=x,也就是y=10,但是后面的++怎么處理呢,這是在賦值給y之后x的變化,x再進行自增,所以x=11,若是在先后順序上面去理解可能會更好理解一點。)
-- part : same with ++
讓我們在代碼實例世界里面進行了解吧!
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int a, b, x, y; 5 cout << "輸入a=" << endl; 6 cin>>a; 7 cout << "輸入b=" << endl; 8 cin>>b; 9 cout << "a++=" << a++ << endl; 10 cout << "a=" << a << endl; 11 cout << "++a=" << ++a << endl; 12 cout << "a=" << a << "b=" << b << endl; 13 x = ++a + b++; 14 y = a++ - --b; 15 cout << "x=" << x << ",y=" << y << endl; 16 cout << "a=" << a << ",b=" << b << endl; 17 return 0; 18 }
以下是上面代碼的運行結果(結合着實例答案來看一下和自己理解上是否達成共識吧~)
賦值運算符:(優先級低於算術運算符)
= (就是他沒錯了)
關於賦值運算符,主要了解兩個式子應該就差不多了。
a=b=c=6和x=(a=3)+(b=2)
第一個式子是從右往左實現的,可理解為:a=(b=(c=5)) 從右往左,一步一步的。
第二個就很好理解了,x=5。
還有一些復合的賦值運算符,如:a+=b+c 則等價於a=a+(b+c) a%=b+c就等價於a=a%(b+c) ;
例如:最開始a=12; a+=a*=2后a=多少?(答案在后面揭曉)
!關於賦值運算符有幾點注意 !
1. int x=2.4(x會=2,小數點后面直接被省掉)
2.double x=2(x=2.0)
關系運算符:(優先級低於算術運算符,高於賦值運算符)
關系運算符主要就是那些大於小於之類的:
以下同一顏色的優先級相同
> < <= >= 高於 == != 運算結果為true or false 也就是1 或者0
注意:>=之間不要寫空格。在運算過程中要摒棄之前的數學思想,在這里只有true or false
邏輯運算符:(優先級高於賦值運算符,!的優先級高於算術運算符,&& ||低於關系運算符,&&高於||)
就是我們常說的與或非了。關於與或非我們主要需要記住的就是他們之間的運算真值表。或(||)是兩個中有一個為真那么就為真,而與(&&)是兩個都為真才為真,否則是假。
注意:&&,||是左結合性 !是右結合性(就是我們之前講過的同時出現多個從哪邊開始算起,可以見前文下划線部分)
條件運算符:(優先級高於賦值運算符,低於邏輯運算符)
代替if else的語句, 為 ? :
在一個實例中來了解吧👇
x=15;
y=x>12?10:20;
意思就是x大於12的話,y就取10,否則就取20。
逗號運算符:
就只是逗號而已,他也是運算符之一,只是他的優先級是最低的,很明顯是左結合性啦~
整理區:算術運算符(加 減 乘 除 求余),增量運算符(++ --),賦值運算符(=),關系運算符(> < >= <= == !=),邏輯運算符(&& || !),條件運算符(?:),逗號運算符(,)。
答案區:a=48
參考資料:c++高級程序設計(清華出版社)
歡迎大家在評論區一同探討,鄙人定會在第一時間回復。