字符型量
字符型量包括字符常量和字符变量。
字符常量
字符常量是用单引号括起来的一个字符。例如\'a\',\'b\',\'=\',\'+\',\'?\'都是合法字符常量。在c语言中,字符常量有以下特点:
1.字符常量只能用单引号括起来,不能用双引号或其它括号。
2.字符常量只能是单个字符,不能是字符串。
3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如\'5\'和5 是不同的。\'5\'是字符常量,不能参与运算。
转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线\"\\\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符
转义字符的意义
\\n
回车换行
\\t
横向跳到下一制表位置
\\v
竖向跳格
\\b
退格
\\r
回车
\\f
走纸换页
\\\\
反斜线符\"\\\"
\\\'
单引号符
\\a
鸣铃
\\ddd
1~3位八进制数所代表的字符
\\xhh
1~2位十六进制数所代表的字符
广义地讲,c语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\\ddd和\\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ascii代码。如\\101表示字?quot;a\" ,\\102表示字母\"b\",\\134表示反斜线,\\xoa表示换行等。转义字符的使用。
void main() |
#p#副标题#e#
此程序练习转义字符的使用:
a、b、c为整数 5->a,6->b,7->c
调用printf显示程序运行结果:
printf(\"%d\\n\\t%d %d\\n %d %d\\t\\b%d\\n\",a,b,c,a,b,c);
程序在第一列输出a值5之后就是“\\n”,故回车换行;接着又是“\\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空二格再输出c 值7后又是\"\\n\",因此再回车换行;再空二格之后又输出a值5;再空三格又输出b的值6;再次后\"\\t\"跳到下一制表位置(与上一行的6 对齐),但下一转义字符“\\b”又使退回一格,故紧挨着6再输出c值7.
字符变量
字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char.字符变量类型说明的格式和书写规则都与整型变量相同。
例如:
char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ascii码的形式存放在变量的内存单元之中的。如x的
十进制ascii码是120,y的十进制ascii码是121.对字符变量a,b赋予\'x\'和\'y\'值: a=\'x\';b=\'y\';实际上是在a,b两个单元内存放120和121的二进制代码:
a 0 1 1 1 1 0 0 0
b 0 1 1 1 1 0 0 1
所以也可以把它们看成是整型量。 c语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时, 只有低八位字节参与处理。
main(){ |
显示程序结果 char a,b;
a=120;
b=121;
本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为\"c\"时,对应输出的变量值为字符,当格式符为\"d\"时,对应输出的变量值为整数。
void main(){ |
a,b被说明为字符变量并赋予字符值
把小写字母换成大写字母
以整型和字符型输出
本例中,a,b被说明为字符变量并赋予字符值,c语言允许字符变量参与数值运算,即用字符的ascii 码参与运算。由于大小写字母的ascii 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。
[practice] //charint a=49; char b; char d; b=a+10; d=a+b;\'vtable a,2,49 b,1,随机 d,1,随机 of vtable \'vupdate 1,49 2,随机 3,随机 2,\';\' 3,\'l\' of vupdate of practice [practice] //char c1,c2; c1=\'a\';c2=\'b\'; c1=c1-32;c2=c2-32;\'vtable c1,1,随机 c2,1,随机 of vtable \'vupdate 1,随机;2,随机 1,\'a\';2,\'b\' 1,\'a\';2,\'b\' of vupdate of practice |