1、字符就是整數
字符和整數沒有本質的區別。可以給 char變量一個字符,也可以給它一個整數;反過來,可以給 int變量一個整數,也可以給它一個字符。
char 變量在內存中存儲的是字符對應的 ASCII 碼值。如果以 %c 輸出,會根據 ASCII碼錶轉換成對應的字符,如果以 %d 輸出,那麼還是整數。
int 變量在內存中存儲的是整數本身,如果以 %c 輸出時,也會根據 ASCII碼錶轉換成對應的字符。
也就是說,ASCII 碼錶將整數和字符關聯起來了。
char類型佔內存一個字節,signed char取值範圍是-128-127,unsigned char取值範圍是0-255。
如果整數大於255,那麼整數還是字符嗎?
描述再準確一些,在char的取值範圍內(0-255),字符和整數沒有本質區別。
字符肯定是整數,0-255範圍內的整數是字符,大於255的整數不是字符。
示例
/*
* 程序名:book68.c,此程序演示字符與整數的關係
* 作者:C語言技術網(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
int main()
{
char a = 'E';
char b = 70;
int c = 71;
int d = 'H';
printf("a=%c, a=%d\n", a, a);
printf("b=%c, b=%d\n", b, b);
printf("c=%c, c=%d\n", c, c);
printf("d=%c, d=%d\n", d, d);
}
運行效果
在ASCII碼錶中,E、F、G、H 的值分別是 69、70、71、72。
2、爲什麼C語言需要字符類型
既然char的本質是整數,那C語言中爲什麼還需要char類型呢?
因爲字符的個數不多,而char型變量佔用的存儲空間比int型變量小,所以用char型變量表示字符,爲編程帶來了方便。
3、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發此文,讓更多的人可以看到它,謝謝!!!