當前位置:才華齋>計算機>C語言>

c語言單引號的用法指導

C語言 閱讀(3.1W)

C語言中用單引號引起的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。而一般我們的編譯器採用的都是ASCII字符集。因此's'的含義其實和十進位制數115的含義是一致的。下面小編給大家整理了c語言單引號的用法,供大家參閱。

c語言單引號的用法指導

單引號和雙引號在C中的意義完全不同,包圍在單引號中的一個字元只是編寫整數的另一種方法。這個整數是給定的字元在實現的'對照序列中的一個對應的值,即ASCII碼值。因此在一個ASCII實現中,‘a’和0141或97表示完全相同的東西,而一個包圍在雙引號中的字串,只是編寫一個有雙引號之間的字元和一個附加的二進位制為零的字元所初始化的一個無名陣列的指標的一種簡短方法。

使用一個指標來代替一個整數通常會得到一個警告訊息(反之亦然),使用雙引號來代替單引號也會得到一個警告訊息(反之亦然)。但通常對不檢查引數型別的編譯器卻除外。因此用printf('');來代替printf("");通常在執行時得到奇怪的結果。因為''代表一個整數,它被轉換為了一個指標,這個指標所指向的內容是沒有意義的。

由於一個整數通常足夠大,以至於可以放下多個字元,一些C編譯器允許在一個字元常量中存放多個字元,這意味著用'yes'來代替'"yes"將不會被發現,後者意味著“包含yes和一個空字元的四個連續儲存區域中的第一個的地址”,而前者意味著“在一些實現定義的樣式中表示由yes聯合構成的一個整數”。這兩者之間的任何一致性都是巧合。

簡單理解,單引號實際是整數的另外的一種表達方式,該整數是單引號裡字元的ASCII碼;而雙引號裡是真正的字元,表示由頭指標指向的一片連續區域儲存的字元。