词条 | 字符型量 |
释义 | § 字符型量 字符常量 字符常量是用单引号括起来的一个字符。例如'a','b','=','+','?'都是合法字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就 不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算。 § 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线"\\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。 常用的转义字符及其含义 转义字符 转义字符的意义 \ 回车换行 \\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() { 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。字符变量类型说明的格式和书写规则都与整型变量相同。 例如: 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; printf("%c,%c\%d,%d\",a,b,a,b); } a ■ b ■ a <-- 120 b <--- 121 显示程序结果 char a,b; a=120; b=121; 本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。 void main(){ char a,b; a='x'; b='y'; a=a-32; b=b-32; printf("%c,%c\%d,%d\",a,b,a,b); } 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 字符串常量 字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program: , ".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。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。 |
随便看 |
百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。