C語言中的字符型數據(char型)表示:字母、符号和一些動作(如:回車)。它占用存儲單元1個字節也就是8位,如果把它看成是有符号型char類數據,它的數據範圍是(-128—127),如果看成無符号型char類數據,那他的數據範圍是(0-255);下面我們對char類數據做個更加全面的了解。
1、如何聲明
1.1 字符數據聲明定義必須使用單引号,比如下面
char num='a';
解釋:把字符常量a賦給變量num;
char sum='\a';
解釋:把字符常量\a賦予變量sum;\a表示計算機響鈴一次;
1.2 我們知道ASCII标準把我們常用的字符都進行了标準化,每一個字符對應一個整數值,當然這個整數值分别可以使用八進制、十六進制或十進制表示。比如下面
char dur='A';等同于int dur=0101;等同于int dur=0x41;等同于char dur=65;
備注:0101是整型數八進制的書寫,0x41是整型數十六進制的書寫。因為上面四種最後打印的都是字符A,所以我們可以說她們相同的表示,但是我們按照标準的規範聲明是“char dur ='A';”這一點大家要注意。
同時上面四種聲明存儲的形式不一樣,但最後輸出是一樣的,說明數據的打印輸出和格式符号%d、%c有關,而與是十進制、十六進制或字符型存儲無關。
2、char型數據的輸出和什麼有關(printf)
2.1字符型數據的輸出格式符是%c;如果我們想把字符所對應的八進制或十六進制直接輸出,怎麼辦?我們可以把格式符換成%o或%x(%#o或%#x)最後輸出是一樣的,說明數據的打印輸出和格式符号%d、%c有關,而與是十進制、十六進制或字符型存儲無關。
2、char型數據的輸出(printf)
2.1字符型數據的輸出格式符是%c;如果我們想把字符所對應的八進制或十六進制直接輸出,怎麼辦?為此C語言做了一個“轉義序列符”,我們可以理解字符使用的快捷鍵。
#include<stdio.h>
int main(void)
{
printf("gramps sez,\''a \\ is a backslash.\''\n");
getchar( );
return 0;
}
這個程序的輸出結果是:gramps sez,"a\ is a backslash."
下面我們來分析這條程序:printf("gramps sez,\''a \\ is a backslash.\''\n");
它使用的轉義序列符有:\''和\\(\''輸出雙引号,而\\輸出符号\)所以從這條程序可以看出,需要使用這些符号,通過轉義序列符可以直接輸出,很方便,如果不這樣,那隻喲通過聲明變量,把字符賦給變量然後再輸出,通過格式符%c;這樣肯定麻煩的多。
總之來說字符數據除了有ASCII規定的還有C語言的轉義序列符,根據需要選擇合适的書寫。
ASCII
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!