1、求模運算特殊點
- 若是包含負數計算機會如何計算
- 被除數爲負數,那麼餘數就是負數;被除數爲正數那麼餘數就是正數
- 舉例:
- 11%5=1 ; 11%(-5)=1 ; -11%5=-1 ; -11%(-5)=-1
不管何種狀況均可以轉化爲a%b = a-(a/b)*b微信
2、遞增、遞減運算符
- 和Java同樣,沒什麼可說的。
- 優先級:只有圓括號優先級比它高;
- (x+y)++這是無效的表達,自增自減運算符只能對一個變量起到做用。
- 原則:(1)若是一個變量出現了一個函數的多個參數中,不要對該變量使用遞增遞減運算符;如:printf("%d %d",num,num++),可能會出現意想不到的問題;(2)若是一個變量屢次出如今一個表達式中,不要對該變量使用遞增或遞減運算;如:ans = num + num*num++
3、表達式
4、類型轉換
- 當類型轉換出如今表達式中,不管是unsigned仍是signed的char和short都會自動轉換爲Int,若是就有必要還會被轉換爲unsigned int(若是short與int大小相同,unsigned int就比int大,unsigned short就會被轉換爲unsigned int)。float不會被轉換爲double
- 小轉換到大,稱爲升級
- 涉及兩種類型的運算,兩個值會分別轉換爲兩種類型更高級別
- 類型的級別從低到高:int \ unsigned int \ long \ unsigned long \ long long \ unsigned long long \ float \ double \ long double
- 在計算過程當中,最後的結果會被轉換爲被賦值變量的類型,這個過程有升級有降級
- 看成爲函數參數傳遞的時候,char和short被轉換爲int,float被轉換爲double.函數原型會覆蓋自動升級
5、源碼: