请输入您要查询的百科知识:

 

词条 字符型量
释义

字符型量包括字符常量和字符变量。字符串常量是由一对双引号括起的字符序列。字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。

字符常量

定义

C语言中的字符常量是用单引号(')括起来的一个字符。如'A'、'x'、'D'、 '?'、'3'、'X'等都是字符常量。对于字符来说,'x'和'X'是两个不同的字符。

特点

在C语言中,字符常量有以下特点:

1.字符常量只能用单引号括起来,不能用双引号或其它括号。

2.字符常量只能是单个字符,不能是字符串。

3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算。

转义字符

转义字符是一种特殊的字符常量。转义字符以反斜线"\\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,一些printf函数的格式串中用到的“\”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。

如'\\r'就代表回车符号,而不代表反斜杠和字母r两个字符。再如'\\101'代表字母'A','\\012'代表换行,'\\x20'就代表空格字符。用这两种方法可以表示任何ASCII码字符。这些转义字符只有几个很常用,'\'、'\\t'、'\\''、'\\\\'。 附ASCII码字符表。

ASCII码字符表

字符形式 含义

\ 换行

\\t 横向跳格(跳到下一个输出区域)

\\v 竖向跳格

\\b 退格

\\r 回车

\\f 走纸换页

\\\\ 反斜杠字符 \\

\\' 单引号 '

\\ddd 1至3位八进制数所代表的字符

\\xhh 1到2位十六进制数所代表的字符

广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\\ddd和\\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\\101表示字?quot;A" ,\\102表示字母"B",\\134表示反斜线,\\XOA表示换行等。转义字符的使用

void main()

{

int a,b,c;

a=5; b=6; c=7;

printf("%d\\\t%d %d\ %d %d\\t\\b%d\",a,b,c,a,b,c);

}

此程序练习转义字符的使用

a、b、c为整数 5->a,6->b,7->c

调用printf显示程序运行结果

printf("%d\\\t%d %d\ %d %d\\t\\b%d\",a,b,c,a,b,c);

程序在第一列输出a值5之后就是“\”,故回车换行;接着又是“\\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空二格再输出c 值7后又是"\",因此再回车换行;再空二格之后又输出a值5;再空三格又输出b的值6;再次后"\\t"跳到下一制表位置(与上一行的6 对齐),但下一转义字符“\\b”又使退回一格,故紧挨着6再输出c值7。

字符变量

字符变量是用来存放字符常量的,一个字符变量中只能存放一个字符。 字符变量的定义形式如右:char x1,x2; 定义了两个字符型变量。可以使用赋值语句对变量x1和x2赋值,如:x1='a;x2='b'; 字符型数据(常量和变量)在内存中占一个字节的空间。

系统在表示一个字符型数据时,并不是将字符本身的形状存入内存,而只是将字符的ASCII码存入内存。在内存中所有的数据又是以二进制的形式存放的。所以上面的例子中'x'和'y'在内存中的表示如下: 'a'、'b'的ASCII码为120、121。而120、121的二进制形式为1111000、 1111001。

所以'a'、'b'在内存中的表示为 1111000、1111001 在这种情况下,我们也可以把字符数据当成数值来对待。看下面几个例子:

main() { char x1,x2; x1=120;x2=121; printf("%c,%c",x1,x2); } 运行结果: x,y

这个例子中给x1和x2两个字符型变量分别赋了两个整型常量120和121 。而在输出的时候是按照字符型数据输出x1与x2的值。运行结果是字符,这就说明:字符型数据可以看成是0到255之间的整型数据。 main() { char x1,x2; x1='x';x2='y'; x1=x1-32; x2=x2-32; printf("%c,%c",x1,x2); } 运行结果: X,Y

这个例子是将小写字母转化为大写字母的程序。我们在对ASCII码字符表进行观察后会发现,大小写对应的字母,它们之间的ASCII码正好相差32。利用这个特性和上一个特性,我们可以编写出非常简单的大小写转化程序,正如本例。

字符串常量

字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program: , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别:

1.字符常量由单引号括起来,字符串常量由双引号括起来。

2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。

3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。

这是与BASIC 语言不同的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。

4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\\0"(ASCII码为0)。这是字符串结束的标志。例如,字符串 "C program"在内存中所占的字节为:C program\\0。字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。

'a'在内存中占一个字节,可表示为:a

"a"在内存中占二个字节,可表示为:a\\0符号常量

符号常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

#define 标识符 常量

其中#define也是一条预处理命令(预处理命令都?quot;#"开头),称为宏定义命令(在第九章预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。

#define PI 3.14159

void main(){

float s,r;

r=5;

s=PI*r*r;

printf("s=%f\",s);

}

由宏定义命令定义PI 为3.14159 s,r定义为实数 5->r PI*r*r->s

显示程序结果 float s,r; r=5; s=PI*r*r; 本程序在主函数之前由宏定义命令定义PI 为3.14159,在程序中即以该值代替PI 。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 11:04:22