文档详情

第03章数据类型_运算符和表达式.ppt

发布:2017-05-02约8.31千字共77页下载文档
文本预览下载声明
定义方式为: char c1, c2; c1= a ; /*给变量赋值*/ c2= b ; 3.5.2 字符变量 用来存放一个字符的变量占一个字节. 一个字符存入一个字符变量。其对应单元存放的是其ASCII码,即ASCII码的二进制形式。 由此: 字符变量中的数据是一整型数据。输出时既可输出字符,亦可输出整数,且字符变量可作整数运算。 3.5.3 字符数据的实际存放形式98 c2 c1 97例3.6: #include stdio.h main ( ) { char c1, c2; c1=97; c2=98; printf (”c1=%c\tc2= %c\n, c1, c2); printf (”c1=%d\tc2= %d\n, c1, c2); } 运行结果: c1=a c2= b c1=97 c2=98 问题:若c1, c2的取值范围超出了ASCII码表的值,会产生什么后果? 例2:#incdudestdio.h main ( ) { char c1, c2, c3, c4; c1=256; c2=257; c3=?1; c4= ?2; printf(c1=%c, c2=%c, c3=%c, , c4=%c ,c1, c2, c3, c4); } 运行结果:c1= , c2= , c3= , c4= . 结论:? 从256开始,依次得新取ASCII码的值。 ? ?1~?256相当于ASCII码的255~0值。 ? 取值分段 ASCII码 ASCII码 ASCII码 ?256 ?1 0 255 256 511 例3.7: #include stdio.h main ( ) { char c1, c2; c1= a ; c2= b ; c1=c1– 32; c2=c2– 32; printf (”c1=%c, c2=%c, c1, c2); } 运行结果 c1=A , c2= B 思考:若有c1=c1?256; c2=c2?256; 则结果怎样? 例3.7.1: #include stdio.h main ( ) { int i; char c; i= 32769; c=a; printf (c=%c, c=%d \n, c, c); printf (i=%c, i=%d \n, i, i); } 运行结果: c=a , c=97 i= , i= ?32767 1 0000000 用双引号括起来的字符串。 例: Good Morning! 字符串存放时,在最后加上\0 –– 空字符。 于是: 3.5.4 字符串常量 Good Morning! \0 注意: A 与A是不同 “A”存储方式为 A \0 但‘A’存储方式为: A 注意: 1. 字符串长度=实际字符个数+1,但最后\0不输出. printf ( Good Morning! ) 此处不需写 \0。 2. 单个字符的字符串不能赋给字符变量。 例: char c; c= a ; 是错误的。 §3.6 变量赋初值 C语言允许定义变量时赋予初值。 如: int i = 6; float x=8.35; char c =6; ? 不可以将具有相同初值的变量赋初值时写成: int a=b=c=6; × 可以这样写: int a=6, b
显示全部
相似文档