1. 程式人生 > >C語言筆記 第十四課 單引號和雙引號

C語言筆記 第十四課 單引號和雙引號

第十四課 單引號和雙引號

C語言中的單引號用來表示字元字面量

C語言中的雙引號用來表示字串字面量

在這裡插入圖片描述
下面的程式片段合法嗎?三條語句都合法,1、2語句有警告
char* p1 = 1; //數字1
char* p2 = ‘1’; //字元1
char* p3 = “1”; //字串1

小貼士:

字元字面量被編譯為對應的ASCII碼
字串字面量被編譯為對應的記憶體地址
printf的第一個引數被當成字串記憶體地址
記憶體的低地址空間不能在程式中隨意訪問
14-1單引號和雙引號的本質
在這裡插入圖片描述
字串的地址都大於圖中0x08048000地址
14-2 混淆概念的程式碼
程式例項分析
char c =”string”; 發生了什麼?
分析:編譯後字串”string”的記憶體地址被賦值給變數C
記憶體地址佔用4個位元組,而變數C只佔用1個位元組
由於型別不同,賦值後產生截斷
小結:


單引號括起來的單個字元代表整數
雙引號括起來的字元代表字元指標
C編譯器接受字元和字串的比較,無任何意義
C編譯器允許字串對字元變數賦值,只能得到錯誤