C语言的字符型数据
副标题#e#
2.5.1字符常量
字符常量是指用一对单引号括起来的一个字符。如‘a’,‘9’,‘!’。字符常量中的单引号只起定界浸染并不暗示字符自己。单引号中的字符不能是单引号(’)和反斜杠(\),它们特有的暗示法在转义字符中先容。
在CC语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。譬喻:字符ASCII码值(十进制)!33048149957A65B66a97b98
留意字符’9’和数字9的区别,前者是字符常量,后者是整型常量,它们的寄义和在计较机中的存储方法都截然差异。
由于C语言中字符常量是按整数(short型)存储的,所以字符常量可以像整数一样在措施中参加相关的运算。譬喻:
'a'-32;/*执行功效97-32=65*/
'A'+32;/*执行功效65+32=97*/
'9'-9;/*执行功效57-9=48*/
2.5.2字符串常量
字符串常量是指用一对双引号括起来的一串字符。双引号只起定界浸染,双引号括起的字符串中不能是双引号(")和反斜杠(\),它们特有的暗示法在转义字符中先容。譬喻:"China","Cprogram","YES&NO","33312-2341","A" 等。C语言中,字符串常量在内存中存储时,系统自动在字符串的末端加一个“串竣事符号”,即ASCII码值为0的字符NULL,常用\0暗示。因此在措施中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。譬喻,字符串China有5个字符,作为字符串常量"China"存储于内存中时,共占6个字节,系统自动在后头加上NULL字符,其存储形式为:
要出格留意字符串与字符串常量的区别,除了暗示形式差异外,其存储性质也不沟通,字符’A’只占1个字节,而字符串常量"A"占2个字节。
2.5.3转义字符
转义字符是C语言中暗示字符的一种非凡形式。凡是利用转义字符暗示ASCII码字符会合不行打印的节制字符和特定成果的字符,如用于暗示字符常量的单撇号(’),用于暗示字符串常量的双撇号(")和反斜杠(\)等。转义字符用反斜杠\后头跟一个字符或一个八进制或十六进制数暗示。表2-4给出了C语言中常用的转义字符。
字符常量中利用单引号和反斜杠以及字符常量中利用双引号和反斜杠时,都必需利用转义字符暗示,即在这些字符前加上反斜杠。
在C措施中利用转义字符\ddd可能\xhh可以利便机动地暗示任意字符。\ddd为斜杠后头跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值。\x后头跟两位十六进制数,该两位十六进制数为对应字符的十六进制ASCII码值。
利用转义字符时需要留意以下问题:
1)转义字符中只能利用小写字母,每个转义字符只能看作一个字符。
2)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操纵。
3)在C措施中,利用不行打印字符时,凡是用转义字符暗示。
#p#副标题#e#
2.5.4 标记常量
C语言答允将措施中的常量界说为一个标识符,称为标记常量。标记常量一般利用大写英文字母暗示,以区别于一般用小写字母暗示的变量。标记常量在利用前必需先界说,界说的形式是:
#define <标记常量名> <常量>
譬喻:
#define PI 3.1415926
#define TRUE 1
#definr FALSE 0
#define STAR '*'
这里界说PI、TRUE、FLASE、STAR为标记常量,其值别离为3.1415926,1,0,’*’。
#define是C语言的预处理惩罚呼吁,它暗示经界说的标记常量在措施运行前将由其对应的常量替换。
界说标记常量的目标是为了提高措施的可读性,便于措施的调试和修改。因此在界说标记常量名时,应使其尽大概地表达它所代表的常量的寄义,譬喻前面所界说的标记常量名PI(π),暗示圆周率3.1415926。另外,若要对一个措施中多次利用的标记常量的值举办修改,只须对预处理惩罚呼吁中界说的常量值举办修改即可。
2.5.5字符变量
字符变量用来存放字符常量,留意只能存放一个字符,不要觉得在一个字符变量中可以放字符串。字符变量的界说形式如下:
char c1,c2;
;
它暗示c1和c2为字符变量,各放一个字符。因此可以用下面语句对c1、c2赋值:
c1=’a’;c2=’b’;
c1、c2被指定为字符变量。但在第3行中,将整数97和98别离赋给c1和c2,它的浸染相当于以下两个赋值语句:
c1='a';
c2='b';
因为’a’和’b’的ASCII码为97和98。第4行将输出两个字符。"%c"是输出字符的名目。措施输出:
#p#分页标题#e#
它的浸染是将两个小写字母转换为大写字母。因为’a’的ASCII码为97,而’A’为65,’b’为98,’B’为66。从ASCII代码表中可以看到每一个小写字母比大写字母的ASCII码大32。即’a’=’A’+32。