2.3 字符型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種類型的字符型變量, 例如:
char a: /*a被定義為有符號字符變量*/
unsigned char l; /*l被定義為無符號字符變量*/
字符在計(jì)算機(jī)中以其ASCII碼方式表示, 其長度為1個(gè)字節(jié), 有符號字符型數(shù)
取值范圍為-128~127, 無符號字符型數(shù)到值范圍是0~255。因此在Turbo C語言中,
字符型數(shù)據(jù)在操作時(shí)將按整型數(shù)處理, 如果某個(gè)變量定義成char, 則表明該變量
是有符號的, 即它將轉(zhuǎn)換成有符號的整型數(shù)。
Turbo C中規(guī)定對ASCII碼值大于0x80的字符將被認(rèn)為是負(fù)數(shù)。例如ASCII 值
為0x8c的字符, 定義成char時(shí), 被轉(zhuǎn)換成十六進(jìn)制的整數(shù)0xff8c 。 這是因當(dāng)
ASCII碼值大于0x80時(shí), 該字節(jié)的位為1, 計(jì)算機(jī)會(huì)認(rèn)為該數(shù)為負(fù)數(shù), 對于
0x8c表示的數(shù)實(shí)際上是-74(8c的各位取反再加1), 而-74 轉(zhuǎn)換成兩字節(jié)整型數(shù)并
在計(jì)算機(jī)中表示時(shí)就是0xff8c( 對0074 各位取反再加1) 。 因此只有定義為
unsigned char 0x8c轉(zhuǎn)換成整型數(shù)時(shí)才是8c。這一點(diǎn)在處理大于0x80的ASCII碼
字符時(shí)(例如漢字碼)要特別注意。一般漢字均定義為unsigned char(在以后的程
序中會(huì)經(jīng)常碰到)。
另外, 也可以定義一個(gè)字符型數(shù)組(關(guān)于數(shù)組后面再作詳細(xì)介紹), 此時(shí)該數(shù)
組表示一個(gè)字符串。
例如:
char str[10];
計(jì)算機(jī)在編譯時(shí), 將留出連續(xù)10個(gè)字符的空間, 即str[0]到str[9]共10個(gè)變
量, 但只有前9個(gè)供用戶使用。第10個(gè)str[9]用來存放字符串終止符NULL即"\0",
但終止符是編編譯程序自動(dòng)加上的, 這一點(diǎn)應(yīng)特別注意。
加上不同的修飾符, 可以定義有符號和無符號兩種類型的字符型變量, 例如:
char a: /*a被定義為有符號字符變量*/
unsigned char l; /*l被定義為無符號字符變量*/
字符在計(jì)算機(jī)中以其ASCII碼方式表示, 其長度為1個(gè)字節(jié), 有符號字符型數(shù)
取值范圍為-128~127, 無符號字符型數(shù)到值范圍是0~255。因此在Turbo C語言中,
字符型數(shù)據(jù)在操作時(shí)將按整型數(shù)處理, 如果某個(gè)變量定義成char, 則表明該變量
是有符號的, 即它將轉(zhuǎn)換成有符號的整型數(shù)。
Turbo C中規(guī)定對ASCII碼值大于0x80的字符將被認(rèn)為是負(fù)數(shù)。例如ASCII 值
為0x8c的字符, 定義成char時(shí), 被轉(zhuǎn)換成十六進(jìn)制的整數(shù)0xff8c 。 這是因當(dāng)
ASCII碼值大于0x80時(shí), 該字節(jié)的位為1, 計(jì)算機(jī)會(huì)認(rèn)為該數(shù)為負(fù)數(shù), 對于
0x8c表示的數(shù)實(shí)際上是-74(8c的各位取反再加1), 而-74 轉(zhuǎn)換成兩字節(jié)整型數(shù)并
在計(jì)算機(jī)中表示時(shí)就是0xff8c( 對0074 各位取反再加1) 。 因此只有定義為
unsigned char 0x8c轉(zhuǎn)換成整型數(shù)時(shí)才是8c。這一點(diǎn)在處理大于0x80的ASCII碼
字符時(shí)(例如漢字碼)要特別注意。一般漢字均定義為unsigned char(在以后的程
序中會(huì)經(jīng)常碰到)。
另外, 也可以定義一個(gè)字符型數(shù)組(關(guān)于數(shù)組后面再作詳細(xì)介紹), 此時(shí)該數(shù)
組表示一個(gè)字符串。
例如:
char str[10];
計(jì)算機(jī)在編譯時(shí), 將留出連續(xù)10個(gè)字符的空間, 即str[0]到str[9]共10個(gè)變
量, 但只有前9個(gè)供用戶使用。第10個(gè)str[9]用來存放字符串終止符NULL即"\0",
但終止符是編編譯程序自動(dòng)加上的, 這一點(diǎn)應(yīng)特別注意。