C連載25-求模、類型轉換、遞增遞減、表達式

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、表達式

  • 聲明不是語句(C語言中),C語言中容許空語句;

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、源碼:

相關文章
相關標籤/搜索