C語言深度解剖 符號

2021-09-27 08:41:07 字數 2856 閱讀 2312

一、注釋符號

1、" // " 和「 / * * / 」 , c語言中,編譯器會將 注釋剔除,然後用空格去代替原來的注釋。

2、「 / * * / 」 這種形式的注釋不能巢狀,如:

/ 這是 / * 非法的 * / * /

因為 「 / * 」總是與離他最近的 「 * / 」 匹配。

3、y = x/ *p 或 y = x/(*p)表示 x 除以 p指向的記憶體裡的值,把結果賦值為 y 。 **斜槓(/)和星號()之間沒有空格 就會被當作注釋的開始。**

4、出色注釋的基本要求:

規則1:注釋應當準確、易懂,防止有二義性。錯誤的注釋不但無益反而有害。

規則2:邊寫**邊注釋,修改**要修改相應的注釋,以保證注釋與**的一致性。

規則3:注釋是對**的 「 提示 」,而不是文件。

程式中的注釋應當簡單明瞭,注釋太多會讓人眼花繚亂。

規則4:一目了然的語句不加注釋。

規則5:對於全域性資料(全域性變數、常量定義等)必須要加注釋。

規則6:注釋採用英語,盡量避免在注釋中使用縮寫,特別是不常用的縮寫。

規則7:注釋的位置應與被描述的**相鄰,可以與語句在同一行,也可以在上行,

但不可放在下方。同一結構中不同域的注釋要對齊。

規則8:當**比較長,特別是有多重巢狀時,應當在一些段落的結束處加注釋,

便於閱讀。

規則9:注釋的縮排要與**的縮排一致。

規則10:注釋**段時應注重 「 為何做(why)」 ,而不是 「 怎麼做 (how)」。

規則11:數值的單位一定要注釋。

規則12:對變數的範圍給出注釋。

規則13:對一系列的數字編號給出注釋。尤其在編寫底層驅動程式的時候。

規則14:對於函式的入口、出口資料給出注釋。

二、連續符和轉義符
#def\

ine mac\

ro 這是一條合法的\\

n字串

3、常用的轉義字元

\n回車換行

\t橫向跳到下一製表位置

\v豎向跳格

\b退格

\r回車

\f走紙換頁

\反斜槓符 」 \ 「

』單引號符

\a鳴鈴

\ddd

1~3位八進位制數所代表的字元

\xhh

1~2位十六進製制數所代表的字元

三、單引號、雙引號

1、雙引號引起來的都是字串常量,單引號引起來的都是字元常量。

2、『 a 』 和 』 a 』 在記憶體中,前者是乙個位元組,後者是兩個位元組。

四、邏輯運算子

1、或運算(||):參與運算的兩個量只要有乙個為真,結果就為真。兩個量都為假時,結果為假。

2、與運算(&&):參與運算的兩個量都為真時,結果為真,否則為假。

3、非運算(!):參與運算量為真時,結果為假;參與結果為假時,結果為真。

4、優先順序:賦值運算子(=) < &&和|| < 關係運算子 < 算術運算子 < 非(!)

五、位運算子

1、c語言中位運算子:

& 按位與

| 按位或

^ 按位異或

~ 取反

<< 左移

「>>」 右移

2、實現不用第三個變數交換兩個變數的值:

a ^= b;

b ^= a;

a ^= b;

3、左移運算子:是雙目運算子,其功能是把《左邊的運算數的各二進位全部左移若干位,由《右邊的數指定移動的位數,高位丟棄,地位補0。

4、右移運算子:是雙目運算子,其功能是把》左邊的運算數的各二進位全部右移若干位,由》右邊的數指定移動的位數。**注意:**對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0;而為負數時,符號位為1,最高位是補0或是補1取決於編譯系統的規定。

六、花括號

1、花括號的作用是:打包。

2、為了把一些語句或**打個包包起來,使之成為乙個整體,並與外界絕緣。

七、++、–操作符

i = 0;

① j = (i++,i++,i++);

②for(i = 0; i < 10; i ++)

③ k = (i++) + (i++) +(i++);

1、逗號表示式,i 在遇到每個逗號後,認為本計算單位已經結束,i 這個時候自加。結果為2。

2、i 與 10進行比較後,認為本計算單位已經結束。

3、i 遇到分號才認為本計算單位已經結束,i 這個時候自加。

4、字尾運算是在本計算單位計算結束後再自加或自減。

5、c語言有乙個規則:每乙個符號應該包含盡可能多的字元。

++i+++i+++i;

表示為:

++i+ ++i+ ++i;

八、運算子的優先順序

優先順序問題

表示式.的優先順序高於*

* p.f , 對p取f偏移,作為指標,然後進行接觸引用操作。*(p.f)

[ ]高於 *

int *ap[ ], ap是個元素為int 指標的陣列 。int *(ap[ ])

函式()高於*

int *fp() , fp是乙個函式,返回int *。int *(fp())

==和!=高於位操作

(val & mask != 0), val & (mask != 0)

==和!=高於賦值符

c = getchar() != eof, c = (getchar() != eof)

算術運算子高於位移運算子

msb << 4 + lab, msb << (4 + lab)

逗號運算子在所有運算子中優先順序最低

i = 1, 2; (i = 1), 2

C語言深度解剖

1.關鍵字 是編譯器能認識的特殊字串符號。c語言共有32個關鍵字,含sizeof,計算物件所佔記憶體空間的大小。2.定義 建立乙個物件並分配一塊記憶體。3.宣告 告訴編譯器,名字已經匹配到了一塊空間,別的地方不能用它來作為變數名或物件名。宣告沒有分配記憶體,可以出現多次宣告。4.區域性變數 也叫自動...

C語言深度解剖

c語言深度解剖 本書目錄結構如下 第一章 關鍵字 1.1 最寬恒大量的關鍵字auto 1.2 最快的關鍵字register 1.3 最不實名的關鍵字static 1.4 基本資料型別 1.5 最冤枉的關鍵字sizeof 1.6 if else組合 1.7 switch case組合 1.8 do w...

C語言深度解剖小結

ansi c標準c語言共有32個 關鍵字,這些關鍵字如下 auto break case char const continue default do double else enum extern float for goto if int long register return short s...