1.注釋符號
編譯器在編譯時刪除注釋,但是以空格替換注釋。
2.接續符
編譯器會自動將\去除,將下一行提到後方。
可用於巨集定義:
3.||與&&
||:從左往右運算當遇到條件為真,則停止運算(後續計算將不執行);
&&:從左往右運算當遇到條件為假,則停止運算(後續計算將不執行);
4.!!:只認0;(
!0 -> 1 !-100 -> 0)
5.(a?b:c)a得值
為真,返回b的
值;否則返回c的
值; *(
a)6.
>>
<<:>
>>:高位補符號位,低位丟棄。
^: 3^3=0
7.++與--
1) int i = 3; (++i)+(++i)+(++i) --> 18 (6+6+6) or 16 ((5+5)+6) 【
編譯器決定】
2) int i = 3; k = (++i,i++,i+10); 逗號
-->
從左至右運算,最後乙個表示式的值就是結果(
4,5,5+10
) k=15
3) 貪心法:編譯器從左至右乙個乙個盡可能多的讀入字元,讀到字元不可能與已讀字元組成合法字元為止;
++i+++i+++i; 編譯器先讀到
++i + ? --> ++i + +
編譯器不讀了先運算
1++
(就錯了);
這和a = i/*p; --->編譯器會認為
/* 為注釋;
(可以改為:
a = i / *p ->在/*
之間加空格)
8.優先順序和型別轉換
9.隱式型別轉換
1)算術表示式中,低型別轉換為高型別
2)賦值表示式中,表示式的值轉換為左邊變數的型別
3)函式呼叫時,實參轉換為形參的型別
4)函式返回值,
return
表示式轉換為返回值型別
int i = -2; unsigned int j = 1;
if((i+j)>0) --->i+j 結果轉換為
unsigned int型別
print(「%d\n」,i+j); ---->%d代表
int
型別;
i+j
為unsigned int
(printf(「%0x\n」,i+j)) 列印
0x十六進製制
--->
為ffffffff
為-1.
c語言符號
運算子基本的優先順序需要記住 指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。請特別注意 1 3 2 7等價於 1 3 2 7.邏輯運算最後結合。有符號左移位,將運算數的二進位制整體左移指定位數,低位用0補齊。有符號右移位,將運算數的二進位制整體右移指定位數,整數高位用...
C語言 有符號 無符號
include int main 注 資料儲存時將 0對應的區間值設定為最小值 2 7 1 說明 資料儲存在計算機中不存在符號位 無符號數最高位不是符號位,而就是數的一部分,無符號數不可能是負數。2 詳解當我們寫程式要處理乙個不可能出現負值的時候,一般用無符號數,這樣可以增大數的表達最大值。3 表範...
C語言筆記 符號
一 注釋符號 和 1 注釋不能巢狀,總與離它最近的 匹配 2 注意 y x p 這個語句會報錯,本意是想表示x除以p指向的記憶體裡的值,把結果賦給y。但是編譯器會把 後邊的內容當做注釋,直到 出現,可是沒有找到 所以出錯。應該寫成y x p 二 單引號 雙引號 1 雙引號引起來的是字串常量 2 單引...