1. 程式人生 > >C語言的操作符

C語言的操作符

一.算數操作符。 C語言的算數操作符與數學中學習的運算子相似,加減乘除餘,+ - * / %。加減乘運演算法則和數學相似,需要注意的是除和求摸,對於C語言中的除,如果兩邊都是整形常量,那麼算下來的一樣是整形常量,稱為整形除法;如果兩邊都是浮點數,算出來的結果就是浮點數,稱為浮點形除法。對於求摸運算子來說就是求餘數。 二.移位操作符。 1.>> 右移操作符 2.<< 左移操作符 移位操作符作用的物件是一個數的補碼; 對於左移:左邊拋棄,右邊補0; 對於右移:右邊拋棄,左邊補原來的符號位(採用算術移位); 對於’>>’操作符,分為兩種移位規則:一種邏輯移位,另一種是算術移位, a.邏輯移位規則是右邊拋棄,左邊最高位直接補0,不考慮之前數的符號位。 b.算術移位規則是右邊拋棄,左邊最高位補和之前數相同的符號位。而目前編譯器通常採用的是算術移位規則。 但這裡需要注意,對一個數移位操作完成後,當前的數不會改變的,除非把它賦值給另外一個變數。 *****對於移位操作符,不要移動負數位,這個是標準未定義的。 int main() { int p=0,q=0,n=2; p=n<<1; printf("%d",p); q=n>>1; printf("%d",q); } 三.位操作符與邏輯操作符。 1.& 按位與 2.| 按位或 3.^ 按位異或 4.&& 邏輯與 5.|| 邏輯或 ***同樣這裡位操作符作用的物件也是一個數的補碼,並且它們的運算元必須是整數。 ***對於’&’,兩個數補碼對應位置的值都為1,結果為1,否則為0;對於’|’,兩個數補碼對應位置都是0,結果是0,否則為1; 四.複合賦值符。 += 相加之後賦值 -= 相減之後賦值 *= 相乘之後賦值 /= 相除之後賦值 %= 求摸之後賦值 使用這些複合操作符之後能使程式碼更加簡潔。 五.單目操作符。 ! 邏輯反操作 + _ 負值 & 取地址 sizeof 運算元的型別長度 ~ 對一個數的二進位制按位整體取反 __ 前後置減減 ++ 前後置加加 間接訪問操作符(解引用)

  1. sizeof操作符計算的是變數(型別)所佔空間的大小,是按位元組來計算,重要的是,sizeof (a+b)裡面的表示式不參與計算,若a,b都是int行型別,其結果依然是4;
  2. 當陣列作為引數為函式傳參時,由於陣列要發生降級,其會降級為一個指標,如果此時在一個函式中sizeof計算陣列的大小是不可以的,其計算的是陣列降級為指標的大小(4個位元組),所以,若函式要得到一個數組的大小,應該在主函式中計算。
  3. 對於前置++或 - -,先操作,再使用,對於後置++或 - -,先使用,再操作。 六.關係操作符。 大於 > 小於 < 大於等於 >= 小於等於 <= 等於 == 不等於 != 這些是用來判斷關係的用算符,非常常用。