tft每日頭條

 > 科技

 > 字符型數據是什麼意思

字符型數據是什麼意思

科技 更新时间:2024-08-02 14:19:39

由于字符是按其代碼(整數)形式存儲的,因此C99把字符型數據作為整數類型的一種。但是,字符型數據在使用上有自己的特點,為此本節單獨介紹。

1、字符與字符代碼

字符與字符代碼并不是任意寫一個字符,程序都能識别的。例如圓周率π在程序中是不能識别的,隻能使用系統的字符集中的字符,目前大多數系統采用ASCII字符集。各種字符集(包括ASCII字符集)的基本集都包括了127個字符。其中包括:

  • 字母:大寫英文字母A~Z,小寫英文字母a~z;
  • 數字:0~9;
  • 專門符号:29個:

! " # & ' ( ) * , - . / : ; < = > ? [ \ ] ^ _ { | } ~

  • 空格符:空格、水平制表符(tab)、垂直制表符、換行、換頁
  • 不能顯示的字符:空(null)字符(以'\0'表示)、警告(以'\a'表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等。

前已說明,字符是以整數形式(字符的ASCII代碼)存放在内存單元中的。例如:

  • 大寫字母‘A’的ASCII代碼是十進制數65,二進制形式為1000001
  • 小寫字母‘a’的ASCII代碼是十進制數97,二進制形式為1100001
  • 數字字符‘1’的ASCII代碼是十進制數49,二進制形式為0110001
  • 空格字符' '的ASCII代碼是十進制數32,二進制形式為0100000
  • 專用字符'%'的ASCII代碼是十進制37,二進制形式為0100101
  • 轉義字符'\n'的ASCII代碼是十進制數10,二進制形式為0001010

可以看到,以上的字符的ASCII代号碼最多用7個二進制就可以表示。所以127個字符都可以用7個二進制表示(ASCII代碼為127時,二進制形式為1111111,7位全是1)。所以在C中,指定用1個字節(8位)存儲一個字符(所有系統都不例外)。此時,字節中的第1位置為0.

2、字符變量

字符變量是用類型符char定義字符變量。char是英文character(字符的所縮寫),見名即可知意。如:char c='?';定義c為字符型變量并使初值為字符'?'。'?'的ASCII代碼是63,系統把整數63賦給變量c。

c是字符變量,實質上是一個字節的整型變量,由于它常用來存放字符。所以稱為字符變量。可以把0~127之間的整數賦給一個字符變量。

在輸出字符變量的值時,可以選擇以十進制整數形式輸出,或以字符形式輸出。如:printf("%d %%c\n",c,c);輸出結果是:63 ?用“%d”格式輸出十進制整數63,用%c格式用字符形式輸出字符'?'.

字符型數據是什麼意思(字符型數據)1

字符型數據的存儲空間和值的範圍

說明:在使用有符号字符型變量時,允許存儲的值為-128~127,但字符的代碼不可能為負值,所以在存儲字符時實際上隻用到0~127這一部分,其第1位都是0.

如果将一個負整數賦給有符号字符型變量是合法的,但是它不代表一個字符,而作為一字節整型變量存儲負整數。如:signed char c = -6;

如果在定義變量時既不加signed,又不加unsigned,C标準并未規定是按signed char處理還是按unsigned char處理,由各編譯系統自己決定,這是和其他整型變量處理方式不同的,如int默認等同于signed int。

可以用以下方法測定本系統的處理方式:

char c = 255; //把一個128~255之間的正數賦給c

printf("%d\n",c); //按十進制形式輸出c的值

在Visual C 系統上進行編譯時,系統給出“警告”:“把一個整常數賦給char變量”。表示255已超過char變量的數值允許範圍,在運行時輸出-1.說明Visual C 是把char默認為signed char類型的。如果把第1行改為“unsigned char c=255;”,則不出現“警告”,且輸出255.

搜索微信公衆号【balayihuier】或掃描下方二維碼關注微信公衆号,資深軟件工程師帶你手把手撸代碼,從此走上人生巅峰,迎娶白富美!

字符型數據是什麼意思(字符型數據)2

公衆号《吧啦一會兒》,手把手帶你撸代碼

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved