首頁  >  文章  >  後端開發  >  在c語言中char型資料在記憶體中的儲存形式為何

在c語言中char型資料在記憶體中的儲存形式為何

青灯夜游
青灯夜游原創
2021-01-28 18:29:3116068瀏覽

在c語言中char型資料在記憶體中的儲存形式為「ASCII碼」。在C語言中,將一個字元常數放到一個字元變數中,實際上並不是把該字元本身放到記憶體單元中,而是將與該字元相對應的ASCII碼放到儲存單元中。

在c語言中char型資料在記憶體中的儲存形式為何

本教學操作環境:windows7系統、c99版本、Dell G3電腦。

在c語言中char型資料在記憶體中的儲存形式為「ASCII碼」。

教學推薦:《c語言教學影片

#c語言char型


#字符型資料型別就是字元
1、字元資料的表示

字元型資料是用單引號括起來的字符。例如:

'a'、'b'、'='、' '、'?'都是合法字元型資料。

在C語言中,字元型資料有下列特點:

字元型資料只能用單引號括起來,不能用雙引號或其它括號。

字符型資料只能是單一字符,不能是字串。

字元可以是字元集中任意字元。但數字被定義為字元型之後就不能參與數值運算。如'5'和5 是不同的。 '5'是字符型數據,不能參與運算。

轉義字元

轉義字元是一種特殊的字元。轉義字元以反斜線"\"開頭,後面跟著一個或幾個字元。轉義字符具有特定的含義,不同於字符原有的意義,故稱“轉義”字符。 常用的轉義字元及其意義轉義字元的意義ASCII程式碼回車換行#9#8##\ r回程13 ##1~3位元八進位數所代表的字元 

轉義字元主要用來表示那些用一般字元不方便表示的控制碼。

轉義字元

##\n

#10

# \t

橫向跳到下一製表位置

\b

退格

##\f

走紙換頁

12

\\

反斜線符號"\"

92

##\'

單引號符號

39

\」

雙引號符號

#34

\a

鳴鈴

7

\ddd

#########\xhh###### ######1~2位元十六進位數所代表的字元############ ###############

2、字元類型說明符

字元變數的類型說明符是char。字元變數類型定義的格式和書寫規則都與整數變數相同。例如:
char a,b;

3、字元變數在記憶體中的儲存形式及使用方法

每個字元變數被分配一個位元組的記憶體空間,因此只能存放一個字元。字元值是以ASCII碼的形式存放在變數的記憶體單元之中的。

如x的十進位ASCII碼是120,y的十進位ASCII碼是121。對字元變數a、b賦予'x'和'y'值:
a='x';
b='y';
其實是在a、b兩個單元內存放120和121的二進位程式碼:
例:將字元變數賦以整數。

#include<stdio.h>
int main(void)
{
    chara,b;
    a=120;
    b=121;
    printf("%c,%c\n",a,b);
    printf("%d,%d\n",a,b);
    return0;
}

本程式中定義a,b為字元型,但在賦值語句中賦以整數值。從結果來看,a,b值的輸出形式取決於printf函數格式字串中的格式符,當格式符為"c"時,對應輸出的變數值為字符,當格式符為"d"時,對應輸出的變數值為整數。

由此可以看出:

(1)小寫的ASCII碼比大寫的ASCII碼大32

(2)後面的ASCII碼比前面的ASCII碼大

#(3)'3'要變化成3需要'3'-'0'= 3

4、字串

#字串是由一對雙引號括起的字元序列。例如: "CHINA" ,「C program」 , "$12.5" 等都是合法的字串。

字串和字元不同,它們之間主要有以下區別:

#字元由單引號括起來,字串由雙引號括起來。

字符只能是單一字符,字串則可以包含一個或多個字符。

可以把一個字元型資料賦予一個字元變量,但不能把一個字串賦予一個字元變數。

字元佔一個位元組的記憶體空間。字串佔的記憶體位元組數等於字串中位元組數加1。增加的一個位元組中存放字元"\0" (ASCII碼為0)。這是字串結束的標誌。

例如,字串"C program" 在記憶體中所佔的位元組為:10個位元組

字元'a'和字串"a"雖然都只有一個字符,但在記憶體中的情況是不同的。
'a'在記憶體中佔一個字節,"a"在記憶體中佔二個字節,

更多程式相關知識,請造訪: 程式教學! !

以上是在c語言中char型資料在記憶體中的儲存形式為何的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn