设为首页 加入收藏

TOP

2.2.3 字符型
2013-10-12 06:46:43 来源: 作者: 【 】 浏览:125
Tags:2.2.3 字符

2.2.3  字符型

1.字符型常量

字符常量是用单引号括起来的一个字符。如'a','b','=','5',' '都是合法字符常量。

注意:在C语言中,'a'和'A'是不同的字符常量,'5'是一个字符常量而5是一个十进制的整数。

2.转义字符

转义字符是一种特殊的字符常量。转义字符以反斜扛"\"开头,后跟一个或几个字符。转义字符具有特别的含义,不同于字符原有的意义,故称"转义"字符。例如,在前面程序中printf函数中用到的"\n"就是一个转义字符,其意义是"回车换行"。转义字符主要用来表示那些用一般字符不便于表示的控制代码,表2-1为常用转义字符。

表2-1 常用转义字符表

字符形式< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   

\n

换行,将当前位置移到下一行开头,相当于按Enter

\t

跳到下一个tab位置,相当于按Tab

\b

退格,将当前位置移到前一列,相当于按BackSpace

\\

反斜扛字符\

\’

单引号字符

\”

双引号字符

\0

空字符,它将用在字符串中

\ddd

13位的八进制数所代表的字符,如\101代表字符A

\xhh

12位的十六进制数所代表的字符,如\x41代表字符A

3.字符变量

字符型变量由关键字char来定义,如下所示:

char c1,c2='A';

定义了两个字符型变量c1、c2,并为c2赋予了初值,即字符'A'。

一个字符型变量在内存中占一个字节(8位),只能存放一个字符,如'a','=','\n','\n'是一个转义字符。字符是以ASCII码的形式存放在内存单元中的,每个字符对应一个ASCII码,如字符A对应的ASCII码为65,字符a对应97,字符b对应98。因此,字符型变量的值实质上是一个8位的数值,其值范围为 27~27 1即 128~127。字符型变量char也可以加上修饰符unsigned变为unsigned char,它表示一个8位的无符号整数,其值取值范围为0~28 1即0~255。

由于字符在内存中以ASCII码的形式存放,而ASCII码实际上就是一个整数,因此字符型变量可以与整型变量进行运算。例2-4将实现它们之间的转换。

例2-4

#include
int main( )
{
int   c1,c2;
char  c3;
    c1='a'-'A';
c2='b'-'B';
c3='c'-32;
    printf("c1 is %d and c2 is %d\n",c1,c2);
printf("c3 is %d and %c\n",c3,c3);
}

程序说明。

(1)程序首先定义两个整型变量c1、c2,然后再定义一个字符变量c3。

(2)将字符a与A的ASCII码相减,并把结果赋给c2。字符a与A的ASCII码分别是97和65,因此c1的值为32。之后把字符b与B的ASCII码相减,并把结果赋给c2。字符b与B的ASCII码分别为98和66,因此c2的值也为32。事实上,对于26个英文字母,其大小写的ASCII码之差都是32,因此大小写之间的转换是很容易的。

(3)将字符c减去32,把值赋给c3。c3的值是字符C的ASCII码,即67。

(4)程序第一行打印出c1和c2的值。第二行以整型和字符型两种方式打印出c3的值。"%c"表示该位置输出的是一个字符型变量的值。

运行结果如下:

c1 is 32 and c2 is 32
c3 is 67 and C

4.字符串常量

字符串常量是由一对双引号括起的字符序列,例如:

"China","Welcome to Linux\n","How are you "。
字符串常量在内存中存储时,每个字符占用一个字节的内存空间,系统自动在字符串尾部加上一个字符'\0',以标识这个字符串的结束。字符串China在内存中的存储形式如图2-2所示。
 
图2-2
事实上,字符是以ASCII码的二进制形式存放在内存中的。例如,字符a的ASCII码的二进制表示是01100001,其在内存中存储形式如图2-3所示。
 
图2-3

5.符号常量

常量也可以有一个名字,这就是符号常量。符号常量的用法如例2-5所示。

例2-5

#include 
#define PI 3.1415926
int main( )
{
float r=2.56;
float l,s;
    l=2*PI*r;
s=PI*r*r;
printf("l=%f\n",l);
printf("s=%f\n",s);
}

程序说明。

该程序的功能是输出一个半径为2.56的圆的周长和面积。程序在第二行使用预编译命令"#define"定义了一个符号常量PI,其值为3.1415926。在这个程序中,凡是PI就是指3.1415926。在程序中,使用一个符号来代替一个常数,至少有以下优点。

(1)使程序更清晰,更可读。在阅读大量的程序代码时,数字本身并不能说明其意义。如果定义为符号常量,程序的可读性就增强了。

(2)程序的修改更方便。试想,如果该程序有许多地方都用到π这个值,而π的值只要3.14就可以了,那么我们只要在程序的开始把PI定义为3.14即可,而不需要在程序里找到每个π,然后修改它的值。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.1.2 as86汇编语言程序 下一篇2.2.2 浮点型

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: