C語言符號

2021-09-30 14:37:56 字數 1329 閱讀 8638

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 單引...