?一、char型別
1.char型別存盤的是整數而不是字符,例如:在ASCII中,65代表A;
2.標準ASCII范圍為0-127;商用統一編碼Unicode創建一個全球字符合集;
3.注意點:C語言把1位元組定義為char型別占用的位數,因此在16位,32位,64位系統中都是可以用char型別的,有敵意i但值得注意就是在Java中,char型別是占兩個位元組的,而byte型別才會占用一個型別;
4.宣告方式:
宣告一個字符,我們需要使用單引號將其參考起來,不能使用雙引號
我們可以這樣char a = 65;但是并不推薦這樣寫,因為在跨系統的時候,可能會因為編碼形式的不同,導致棘手的問題,
(1)注意點:char型別在C語言中將字符常量視為int型別,而不是char型別
char a = 'A'; char b = 'DABC'; printf("%c\n",a); printf("%c",b);

可以看出,變數b可以存盤四個字符,但是當列印的時候我們只會列印出后面的八位,即C,不會列印前面,這種形式也用于“變位”操作,
5.非列印字符
有些字符比如:換行、空格等特殊字符無法列印出,我們有兩個方式進行
(1)使用ASCII碼,比如:蜂鳴字符就是7,可以這樣寫char a = 7;
(2)使用轉義序列
|
轉義序列 |
含義 |
|
\a |
警報(ANSI C) |
|
\b |
退格 |
|
\f |
換頁 |
|
\n |
換行 |
|
\r |
回車 |
|
\t |
水平制表符 |
|
\v |
垂直制表符 |
|
\\ |
反斜杠 |
|
\' |
單引號 |
|
轉義序列 |
含義 |
|
\" |
雙引號 |
|
\? |
問號 |
|
\0oo |
八進制(oo必須是有效的八進制數字,即每個o可表示 |
|
\xhh |
十六進制(hh必須是有效的十六進制數,即每個h可表示0~f中的一個數字) |
(3)C90中添加了警報聲音,也就是\a,但是在某些系統中是不起作用的,C規定?:警報字符是不改變活躍位置的(這個活躍位置,我們可以理解為游標)
(4)八進制其實可以省略前面的0?,比如:'\007',可以寫為‘\07',甚至可以寫為'\7';
(5)整數常量的例子
|
型別 |
十六進制 |
八進制 |
十進制 |
|
char |
\0x41 |
\0101 |
N.A. |
|
int |
0x41 |
0101 |
65 |
|
unsigned int |
0x41u |
0101u |
65u |
|
long |
0x41L |
0101L |
65L |
|
unsigned long |
0x41UL |
0101UL |
65UL |
|
long long |
0x41LL |
0101LL |
65LL |
|
unsigned long long |
0x41ULL |
0101ULL |
65ULL |
(6)使用ASCII碼時,注意數字和數字字符的區別,?例如:字符4對應的ASCII碼是52,’4?‘表示字符4,不是數值4
(7) ASCII碼和轉義字符相比,推薦使用轉義字符,因為這樣可移植性強,且?易于識別,
(8) 如果要使用ASCII碼,為何要寫成\032,而不是032,首先’\032'能夠更加清晰的表達程式員?使用字符編碼的意圖,并且這樣寫是可以嵌套到字串中去的,比如:printf("Hello!\007\n")?
三、原始碼:
D9_1_TypeOfchar.c
https://github.com/ruigege66/CPrimerPlus/blob/master/D9_1_TypeOfchar.c
https://github.com/ruigege66/CPrimerPlus/blob/master/D7_toobig.c
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流,后臺回復“禮包”獲取Java大資料學習視頻禮包、

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9957.html
標籤:C
上一篇:磨皮美顏演算法 附完整C代碼
