C 程序设计教程3.ppt
文本预览下载声明
C ++ 程序设计教程(第二版) 第三章 数据类型 Chapter 3 Data Types 数据类型: 一定的数据在计算机的内部表示; 该数据所表示的值的集合; 在该数据上的一系列操作。 内部数据类型: 1.整型 长整型,短整型,字符型,布尔型 2.浮点型 单精度,双精度 第三章内容 1. 整型 ( int Types ) 整型数的内部表示:二进制补码 位数既定的二进制补码运算没有加减的区别;对于溢出,只是简单的舍弃而不是错误 整型数的表示范围:取决于二进制位数 整型数的操作:+,-,*,/,%,,,=,=,!,^,,=,,=,==,^=,,|,=,|=,,||,=,||=,!=,=,+=,-=,*=,/=,%=,++,--,,,? : 编译器的机器字长总是与整型的位长有关.如: 32位编译器的整型数一定为32位长 整型字面值分八进制,十进制和十六进制不同表示.如: 0123 // 8进制 0x12af3 // 16进制 12345 // 10进制 超过表示范围的整型数其值不可预料或者出错.如: int a = 12345678912345678912345; // 错 2. 整型子类( Sub-int Types ) 字符型: 表示范围: 有符号:-128~127 无符号:0~255 输出形式与整型数不同: int a = 65; char b = 65; couta“\n”; coutb“\n”; 结果为: 65 A 枚举型: 自定义整数区间,甚至列举单个整数值 enum Week{ Mon, Tue, Wed, Thu, Fri, Sat, Sun }; 最大特点是可以给每个值指定一个在程序中直接使用的标记(枚举符). 编程中将其当作整数常量用.如: int a = 7; if ( a == Sun) cout “Sunday\n”; 3. 浮点型 ( Floating-Point Types ) 浮点数的内部表示: 国际标准IEEE754浮点表示法,它与编程所用的浮点数字面量以及输出的十进制浮点数之间有一个转换关系 浮点数的表示范围: 32位浮点数±3.4×1038 64位浮点数±1.8×10308 浮点数的操作: 常规的加、减、乘、除等操作 4. C-串与string ( C-string string ) C-串结构 每个字符占据1个字节 一个C-串是一个字符序列,用来表示各种名字或者文字说明 C-串的字符序列的最后总是添加有一个结束标志.即在6个字符的字串(“Hello!”)其空间存储有7个字节 左边三图是不同细节的同一空间结构描述 知道了C-串首地址,即可知道整个串,所以可以藉字符首址(字符指针)来操作C-串,但要注意,串的第一个字符与整个串的操作不同,如,C-串的输出操作: char* str = ”Hello”; cout *str endl; // 显示H cout str endl; // 显示Hello C-串不能直接比较,因为字符指针的比较只是地址值的比较而不是C-串的字典序比较: cout(“join”==”join” ? ”” : ”not “)”equal\n”; // 字面值比较 char* str1=”good”; char* str2=”good”; cout(str1==str2 ? ”” : ”not “)”equal\n”; // 字符指针比较 char buffer1[6]=”Hello”; char buffer2[6]=”Hello”; cout(buffer1==buffer2 ? ”” : ”not “)”equal\n”; // 字符数组比较 结果: not equal not equal not equal 不得不配备专门操作C-串的库函数: strcpy(s1, s2); //从s2拷贝到s1 strcmp(s1, s2); //比较s1与s2 strcat(s1, s2); //连接s2到s1 strrev(s); //将s倒排 strset(s, ‘c’); //将s全置为c strstr(s, “ell”); //查找s中的子
显示全部