C語言深度解剖(第二章-符號讀書筆記)

2.1 註釋符號

c語言註釋有兩種://和//,
其中://編譯器剔除註釋代碼時會將//變爲空格。
特別注意://這種註釋不能嵌套,/總是與離它最近的/匹配

2.2 連續符和轉義符

C語言裏以反斜槓\表示斷行。編譯器會將反斜槓剔除掉,跟在反斜槓後面的字符自動接續到前一行。但是注意:反斜槓之後不能有空格,反斜槓的下一行之前也不能有空格。當然你可以測試一下加了空格之後的效果。有時候bug出現在這裏,你很難找到。

反斜槓除了可以被用作接續符,還能被用作轉義字符的開始標誌。

常用的轉義字符及其含義:
轉義字符      轉義字符的意義
\n              回車換行
\t             橫向跳到下一製表位置
\v             豎向跳格
\b              退格
\r              回車
\f             走紙換頁

\\反斜扛符"\"

\'  單引號符
\a  鳴鈴  
\ddd    1~3 位八進制數所代表的字符
\xhh    1~2 位十六進制數所代表的字符

廣義地講,C語言字符集中的任何一個字符均可用轉義字符來表示。
表中的\ddd\xhh正是爲此而提出的。ddd 和 hh 分別爲八進制
和十六進制的 ASCII 代碼。
如\102 表示字母"B", \134 表示反斜線,\X0A 表示換行等

2.5.1 左移和右移

左移運算符“<<”是雙目運算符。其功能把“<< ”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補 0。

右移運算符“>>”是雙目運算符。其功能是把“>> ”左邊的運算數的各二進位全部右移若干位,“>>”右邊的數指定移動的位數。但注意:對於有符號數,在右移時,符號位將隨同移動。當爲正數時, 最高位補 0;而爲負數時,符號位爲 1,最高位是補 0 或是補 1 取決於編譯系統的規定。Turbo C 和很多系統規定爲補 1。

注意的問題:

0x01<<2+30;或 0x01<<2-3;

這樣的代碼時錯誤的。一個整型數長度爲 32 位,左移32位發生了什麼事情,溢出
!左移-1位呢,所以左移和右移的位數是有講究的。左移和右移的位數不能大於
數據的長度,不能小於 0。
發佈了57 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章