天天看點

字元型char和整型int之間的關系

在C語言中并沒有char類型的常量(但是在C++中卻有,字元常量都是char類型),其實是用int表示char,字元型與整型相比隻是更加節省記憶體。(在所有資料類型中,char類型占用的記憶體空間最少)

有符号的字元表示-128127,無符号字元表示0255。char相當于signed char還是unsigned char取決于編譯器。

字元型資料在記憶體中是以二進制形式存放的,并不是真正的把一個字元存進記憶體裡。在對字元型資料進行相加減運算的時候,系統會首先将char型資料以隐形的方式轉化為int型資料再進行相加減運算。是以,由字元型資料在記憶體的存儲方式來看,字元型資料在做數字運算時實際上是對字元本身對應的ASCII碼進行相應的數值運算。

這種在單片機的通信中應用的最多:

字元型char和整型int之間的關系

在單片機的運算中,調試接口答應的都是char類型,但是底層會将char類型轉換成int類型,最終全部按照二進制計算。

整型和字元型可以互相轉換:

(char)整型變量=字元型變量

(int)字元型變量=整型變量

如下例子,輸出的結果為一個為 ch 表示的字元,另一個為字元對應的 ASC II碼。

char ch=‘a’;

printf("%c%d “,ch,ch);//分别輸出ch的字元和對應的ASCII碼。即列印出的是字元和整數。

printf(”%c%c%c",ch,ch+1,ch+2);//輸出“abc”

char變量可以包含任意單個字元,是以可以給char類型的變量指定字元常量,作為其初始值。

字元常量是一個放在單引号中的字元。

char letter=‘A’;

char digit=‘9’;

也可以使用轉義序列指定字元常量,如:

char newline=’\n’;

char tab=’\t’;

也可以用整數值初始化char類型的變量,隻要該值在編譯器許可的char類型的值域内即可,如:

char ch=74;

既然char和int本質都是整數,為什麼還要作區分呢?

因為字元的個數相對較少,因而char型變量的存儲單元可以比int型變量的存儲單元小。其實就是提出一種char型變量專門存儲字元,友善程式員的資料選擇。

————————————————

版權聲明:本文為CSDN部落客「zhjqxy」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/zhjqxy/article/details/52975140

繼續閱讀