操作符用來表示對數字的處理規則
操作符可以分爲三種:
單目操作符
雙目操作符
三目操作符
自增,自減操作當 數字 使用時,前操作是修改之後的數字,後操作是修改之前的數字
不要在一條語句裏對同變量多次進行自增自減計算;比如:num = num1++ + ++num1
***************************************************************
位操作符:對二進制就行操作
~:按位取反操作 比如 int a = ~5
&:按位與;只要對應數位有一個數位的內容是0,則計算結果就是0 比如:3&5
3: 0000 0011
5: 0000 0101
結果: 0000 0001 == 1
|:按位或;只要對應數位有一個位數內容是1,則計算結果就是1 比如:3|5
3: 0000 0011
5: 0000 0101
結果: 0000 0111 == 7
^:按位異或;如果對應數位內容一樣則計算結果是0,否則結果是1 比如:3^5
3: 0000 0011
5: 0000 0101
結果: 0000 0110 == 6
<<:左移;比如數字3左移2位 3<<2;
3: 0000 0011
左移: 0000 1100 == 12
>>:右移;比如數字5右移2位 5>>2;
有符號類型:左邊空出來的位置一定填充符號位
比如:
0x80000000
轉換二進制: 10000000 00000000 ......
右移: 11100000 00000000 ...... == 0xe0000000
無符號類型:左邊空出來的位置一定填0
比如:
5: 0000 0101
左移: 0000 0001 == 1
所有操作符不會修改存儲區內容,只會得到一個新的數字
&也可以作爲單目操作符使用,用來計算一個存儲區的地址;可以使用%p表示地址
如果表達式裏包含的多個數字類型不同必須首先轉換成統一個類型之後才能計算;
這個轉換過程叫做隱式類型轉換,完全由計算機控制
如果多個多個數據在內存中佔地大小不同就把佔地小的數據轉換成佔地大的類型
如果不同類型數字在內存佔地大小一樣就把整數類型轉換成浮點類型,把有符號類型轉換成無符號類型
在c語言中可以隨時給一個數字指定一個新的類型,叫做強制轉換;比如(char)300
強制類型轉換可能導致數據的丟失
類型轉換不會修改任何存儲區的內容,計算機會分配一個新的存儲區,把轉換後的結果記錄在新的存儲區中;然後用這個新的存儲區就行後面的計算