C语言程序设计谭浩强版 三

来源:互联网 发布:淘宝女模特jojo 编辑:程序博客网 时间:2024/05/16 15:36

3.5  字符型数据


3.5.1、字符常量


字符常量是用单引号括起来的一个字符。例如: 'a'、'b'、'='、'+'、'?' 都是合法字符常量。

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

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

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

3) 、字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。

        如'5'和5 是不同的。'5'是字符常量,不能参与运算。


特殊的字符常量:转义字符,是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。

常用的转义字符及其含义如下表:


下面我们举个例子,来说明一下转义字符的使用


#include<stdio.h>int main(void){int a,b,c;a = 5;b = 6;c = 7;printf("  ab  c\tde\rf\n");printf("hijk\tL\bM\n");}


3.5.2、字符变量


字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是char。


3.5.3、字符数据在内存中的存储形式及其使用方法


每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的

内存单元之中的。

C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,

也允许把整型量按字符量输出。


下面举一个例子,向字符型变量赋以整数

#include<stdio.h>/* 向字符变量赋以整数 */int main(void){char c1,c2;c1 = 97;c2 = 98;printf("%d %d\n",c1,c2);printf("%c %c\n",c1,c2);}


程序输出结果为:

a   b     //97的ASCII码a,98的ASCII码为b

97 98



3.5.4、字符串常量


字符串常量是由一对双引号括起的字符序列。例如: "CHINA" , “C program” , "$12.5"等。

字符串常量和字符常量是不同的量。它们之间主要有以下区别:

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

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

3) 、可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。

        在C语言中没有相应的字符串变量。这是与BASIC 语言不同的。但是可以用一个字符

        数组来存放一个字符串常量。在数组一章内予以介绍。

4) 、字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。

        增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。


例如: 字符串 "C program" 在内存中所占的字节为:





0 0