c++的常見運算符的分類與淺析


口號:今天也要元氣滿滿哦!

分類: 

(雖然看起來很多,但是仔細了解之后會發現因為彼此之間沒有太准確的聯系,所以還是蠻好記憶的)

 


 

        算術運算符:

         定義:

         算術運算符就像是表面的意思,要算術的。用於各數值運算,包括+ - * / 還有求余,也就是%(模運算)。

         詳細描述相關細節和注意部分:

          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++高級程序設計(清華出版社)

歡迎大家在評論區一同探討,鄙人定會在第一時間回復。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM