版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章2主要内容3.1 3.1 常量与变量常量与变量3.2 3.2 整型数据整型数据3.3 3.3 浮点型数据浮点型数据3.4 3.4 字符字符型数据型数据3.5 3.5 各类数值型数据间的混合运算各类数值型数据间的混合运算 3数据类型总表数据类型总表C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型voidvoid字符类型字符类型char整整 型型实型实型单精度型单精度型float双精度型双精度型double结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int数据类型决定:1. 数据占内存字节数2. 数据取值范
2、围3. 其上可进行的操作基本数据类型的特点:其值不可以再分为其它数据类型由已定义的一个或多个数据类型用构造的方法来由已定义的一个或多个数据类型用构造的方法来定义的。定义的。即一个构造类型的值可以分解成若干个即一个构造类型的值可以分解成若干个“成员成员”或或“元素元素”。每个成员可能是一个基本。每个成员可能是一个基本数据类型或又是一个构造类型。数据类型或又是一个构造类型。数组数组枚举类型枚举类型定义类型定义类型typedeftypedef43.1 常量与变量常量常量: :在程序运行过程中在程序运行过程中,其值不能被改变的量称其值不能被改变的量称为常量。为常量。常量区分为不同的类型:常量区分为不同
3、的类型:整型整型 100100,125125,-100-100,0 0实型实型 3.14 3.14 , 0.1250.125,-3.789-3.789字符型字符型 a, ba, b,22符号常量符号常量 为了使用方便,可用一个标识符(符号名)来代表为了使用方便,可用一个标识符(符号名)来代表一个常量。一个常量。5例例3-13-1在程序中使用符号常量在程序中使用符号常量 #define PRICE 30#include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); 运行结果运行结
4、果: total=300total=300程序中用程序中用#define#define命令行定义命令行定义PRICEPRICE代代表常量表常量30,30,此后凡在本文件中出现的此后凡在本文件中出现的PRICEPRICE都代表都代表30,30,可以和常量一样进行运算可以和常量一样进行运算如再用赋值语句给如再用赋值语句给PRICEPRICE赋值是错的赋值是错的PRICE=40;PRICE=40; / /* * 错误,不能给符号错误,不能给符号 常量赋值常量赋值* */ /不能对符号常量指定类型不能对符号常量指定类型intint PRICE; PRICE; / /* * 错误,错误,PRICEPRI
5、CE不是不是 变量,不能指定类型变量,不能指定类型 * */ / 定义格式: #define#define 符号常量符号常量 常量常量符号常量一般用大写字母符号常量一般用大写字母在此命令行的后面不加分号在此命令行的后面不加分号63.1 常量与变量变量变量: :在程序运行过程中在程序运行过程中,其值发生改变的量称为其值发生改变的量称为变量。变量。变量变量代表内存中具有特定属性的代表内存中具有特定属性的一个存储单元一个存储单元,它用来存放数据,也就是变量的值,在程序运行它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的期间,这些值是可以改变的73.1 常量与变量变量名变量名实际上是
6、以一个名字代表实际上是以一个名字代表一个内存地址一个内存地址,在对程序编译连接时由编译系统给每一个变量名在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。分配对应的内存地址。从变量中取值,实际上是从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元通过变量名找到相应的内存地址,从该存储单元中读取数据中读取数据注意区注意区分变量分变量名和变名和变量值量值83.1 常量与变量标识符标识符v定义:用来标识变量、函数、数组等的字符序定义:用来标识变量、函数、数组等的字符序列列vC语言中,有语言中,有3类标识符:关键字,系统预定义类标识符:关键字,系统预定义的标识符的标识符 ,用
7、户标识符,用户标识符v组成:组成:l只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母组成,且第一个字母必须是字母或下划线必须是字母或下划线l大小写敏感(如:大小写敏感(如:page和和Page是两个不同的标是两个不同的标识符)识符),一般变量名用小写字母表示一般变量名用小写字母表示l不能使用关键字、预定义不能使用关键字、预定义标识符标识符(如库函数名(如库函数名printf等等)93.1 常量与变量标识符标识符v有效长度:随系统而异,但至少前有效长度:随系统而异,但至少前8个字符有效,个字符有效,建议建议标识符标识符的长度最好不要超过的长度最好不要超过8个字符个字符 P29v命名
8、原则:命名原则:l见名知意见名知意l不宜混淆不宜混淆 如如l与与I, o与与0例:判断下列标识符的合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_char ab _above $123M.D.John3days#33char$123ab103.1 常量与变量在程序中,常量是可以不经说明而直接引用的,而变量则必须先定义后使用变量则必须先定义后使用v变量定义的一般格式: 数据类型 变量1,变量2,变量n;决定分配字节数和决定分配字节数和数的表示范围以及数的表示范围以及其上可进行的操作其上可进行的操作例: int a,b,c;
9、float data;合法标识符v变量初始化变量初始化:定义时赋初值定义时赋初值例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;编译程序根据变量定义为其编译程序根据变量定义为其分配指定字节的内存单元分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /
10、Illegal use of floating point in function main v变量定义位置:变量定义位置:一般一般放在函数开头放在函数开头void main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);v允许在一个类型说明符后,说明多个相同类型允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。符与变量名之间至少用一个空格间隔。v最后一个变量名之后必须以最后一个变量名之后必须以“;
11、”号结尾号结尾。void main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句例例: int a,b,c; float data;113.2 整型数据整型常量的表示形式整型常量的表示形式 三种形式:v十进制整数:由数字由数字09和正负号表示。如和正负号表示。如 123, -456,0v八进制整数:由由数字数字0开头开头,后跟数字后跟数字07表示。如表示。如 0123,011v十六进制整数:由由0 x开头开头,后跟后跟09,af,AF 表示表示。如如0 x123,0 xff在程序中
12、是根据在程序中是根据前缀来区分各种前缀来区分各种进制数的。因此进制数的。因此在书写常数时不在书写常数时不要把前缀弄错造要把前缀弄错造成结果不正确。成结果不正确。 问题:0123 = ( )100 x123 = ( )100 xff = ( )1083291255问题:问题:0123 = ( )100 x123 = ( )100 xff = ( )10123.2 整型数据整型变量整型变量v整型变量用来存放整数。整型变量用来存放整数。vC语言中有以下语言中有以下3类整型变量类整型变量 :基本整型,短整:基本整型,短整型,长整型型,长整型基本整型基本整型 以以intint表示表示短整型短整型 以以s
13、hort intshort int或或shortshort表示表示长整型长整型 以以long intlong int或或longlong表示表示133.2 整型数据整型变量整型变量v一般情况下,存储整数时存储单元中的第一个二进位一般情况下,存储整数时存储单元中的第一个二进位用来代表数值符号,而在实际应用中,变量的值常常用来代表数值符号,而在实际应用中,变量的值常常是正的是正的 ,所以存储单元全部用来存储数值本身,此定,所以存储单元全部用来存储数值本身,此定义义为为无符号整数无符号整数。所以归纳起来,在。所以归纳起来,在C语言中,可以语言中,可以定义和使用定义和使用6种整型变量种整型变量共六种共
14、六种有符号基本整型有符号基本整型有符号短整型有符号短整型有符号长整型有符号长整型无符号基本整型无符号基本整型无符号短整型无符号短整型无符号长整型无符号长整型signed int signed short intsigned long intunsigned intunsigned short intunsigned long int143.2 整型数据整型变量整型变量vANSI C标准没有具体规定各类数据在内存中所标准没有具体规定各类数据在内存中所占的字节数,由各占的字节数,由各C编译系统自行决定。常见的编译系统自行决定。常见的有两种:(有两种:(1)Turbo C等,等,short:2字节,
15、字节,int:2字节,字节,long:4字节;(字节;(2)Visual C+等,等, short:2字节,字节,int:4字节,字节,long:4字节字节v例:整数例:整数13的存储情况的存储情况 P34153.2 整型数据整型变量整型变量v整数类型的有关数据1615 14 13 12 11 109876543210有符号数有符号数无符号数无符号数0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 132767327670 1 1 1 1 1 1 1 1 1 1 1 1 1 1 032766327660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1110 0 0 0 0
16、 0 0 0 0 0 0 0 0 0 0 0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1-1(补码补码)655351 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0-2655341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-32767327691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-3276832768173.2 整型数据-32768-32768的补码问题的补码问题v首先要知道的是计算机中补码的表示是唯一且连续的!首先要知道的是计算机中补码的表示是唯一且连续的!v若用若用16位来存储,位来存储,-32768不能用原码表
17、示出来。所以不能用原码表示出来。所以-32768只能通过只能通过-32767-1来求:来求:-1的补码为的补码为11111111 11111111-32767的补码为的补码为10000000 00000001所以加起来为:所以加起来为:(1)10000000 00000000 (1)被舍去了。被舍去了。v又因为又因为10000000 00000000没有用来表示其他任何数,没有用来表示其他任何数,所以所以10000000 00000000就被用来表示就被用来表示-32768,这也验,这也验证了补码的唯一性和连续性!而且这也证明了证了补码的唯一性和连续性!而且这也证明了16位的整位的整数的范围是
18、数的范围是“-3276832767”。183.2 整型数据v整型数据在内存中的存放形式整型数据在内存中的存放形式l数据在内存中以二进制形式存放数据在内存中以二进制形式存放例:例:int i; /* 定义为整型变量定义为整型变量 */i=10; /* 给给i赋以整数赋以整数10 */0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 010ii193.2 整型数据整型数据在内存中的存放形式整型数据在内存中的存放形式v实际上,实际上,数值是以补码表示的数值是以补码表示的。一个正整数的补码。一个正整数的补码和该数的原码相同。负数的补码是:和该数的原码相同。负数的补码是:符号位为符号位为1,数
19、,数值位值位将该数的绝对值的二进制形式,按位取反再加将该数的绝对值的二进制形式,按位取反再加1v例:求例:求-10的补码的补码1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0-10的原码的原码取反取反1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1得得-10的补码的补码1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0203.2 整型数据整型数据的溢出整型数据的溢出(自看)整型常量的类型整型常量的类型v从整型常量的字面上就可以区分它是什么类型从整型常量的字面上就可以区分它是什么类型l一个整数,如果其值在一个整数,如果其值在-32768+32767范围内,
20、认为它是范围内,认为它是int型型,它可以赋值给,它可以赋值给int型和型和long int型变量型变量l一个整数,如果其值超过了上述范围,而在一个整数,如果其值超过了上述范围,而在-2147483637+2147483647范围内,则认为它是为范围内,则认为它是为长整型长整型。可以将它赋值给一个可以将它赋值给一个long int型变量型变量l在一个整常量后面加一个字母在一个整常量后面加一个字母l或或L,则认为是,则认为是long int型型常量,常量,例如例如123l、432L、0L等等l一个整常量后面加一个字母一个整常量后面加一个字母u或或U,认为是,认为是unsigned int型型,如
21、如12345u在内存中按在内存中按unsigned int规定的方式存放规定的方式存放(存储单元存储单元中最高位不作为符号位,而用来存储数据中最高位不作为符号位,而用来存储数据)213.3 浮点型数据(实数)浮点型常量的表示形式浮点型常量的表示形式v在语言中,实数只采用十进制在语言中,实数只采用十进制 l十进制小数形式十进制小数形式:(:(必须有小数点必须有小数点) 如如0.123, .123,(绝对值小于绝对值小于1的实数,其小数点前的实数,其小数点前面的面的0可以省略可以省略) 123.0, 0.0, 123. ,0.123l指数形式:指数形式:(e或或E之前必须有数字;指数必须为之前必须
22、有数字;指数必须为整数;在字母整数;在字母e或或E的前后及数字之间不能插入空的前后及数字之间不能插入空格格)如)如12.3e3 ,123E2, 1.23e4 223.3 浮点型数据(实数)浮点型常量的表示形式浮点型常量的表示形式 在字母在字母e e(或(或E E)之前的小数部分中,小数点)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字左边应有一位(且只能有一位)非零的数字例如例如: : 123.456123.456可以表示为:可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.12
23、3456e3, 0.0123456e4, 0.00123456e0.123456e3, 0.0123456e4, 0.00123456e 其中的其中的1.23456e21.23456e2称为称为“规范化的指数形式规范化的指数形式”一个浮点数在用指数形式输出时,是按规范化一个浮点数在用指数形式输出时,是按规范化的指数形式输出的。的指数形式输出的。233.3 浮点型数据(实数)浮点型常量的表示形式浮点型常量的表示形式 指的是小数部分中小数点前的数字为指的是小数部分中小数点前的数字为0 0,小,小数点后第数点后第1 1位数字非零的表示形式位数字非零的表示形式例如例如: : 123.456123.45
24、6可以表示为:可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e0.123456e3, 0.0123456e4, 0.00123456e 其中的其中的0.123456e30.123456e3称为称为“标准化的指数形式标准化的指数形式”标准化的指数形式用于存储。标准化的指数形式用于存储。243.3 浮点型数据(实数)浮点型变量浮点型变量v浮点型变量分为单精度(浮点型变量分为单精度(float型)、双精度型)、双精度(double型
25、)和长双精度型(型)和长双精度型(long double)三)三类形式。类形式。253.3 浮点型数据(实数)浮点型变量浮点型变量v浮点型数据在内存中的存放形式:浮点型数据在内存中的存放形式:l与整型数据的存储方式不同,与整型数据的存储方式不同,浮点型数据是按照浮点型数据是按照标准化的二进制指数形式存储的标准化的二进制指数形式存储的。系统把一个浮。系统把一个浮点型数据分成小数部分和指数部分,分别存放。点型数据分成小数部分和指数部分,分别存放。263.3 浮点型数据(实数)浮点型常量的类型浮点型常量的类型v浮点型常量不分单、双精度,都浮点型常量不分单、双精度,都按双精度按双精度double型处理
26、型处理 v在浮点型常量后加字母在浮点型常量后加字母f或或F,(如,(如1.65f, 654.87F),认为它是),认为它是float 型型v如果把一个浮点型常量赋给一个单精度变量如果把一个浮点型常量赋给一个单精度变量f,系,系统给出警告,警告不影响连接和运行最后结果。但统给出警告,警告不影响连接和运行最后结果。但只取其结果前只取其结果前7位赋给浮点型变量位赋给浮点型变量f(一个单精度浮一个单精度浮点型变量只能保证的有效数字是点型变量只能保证的有效数字是7位,一个双精度位,一个双精度浮点型变量能保证的有效数字是浮点型变量能保证的有效数字是16位位)273.3 浮点型数据(实数)浮点型变量浮点型变
27、量v浮点型数据的舍入误差:浮点型数据的舍入误差:例例 浮点型数据的舍入误差浮点型数据的舍入误差#include void main()() float a; a=3.141592612; printf(af,a);); 运行结果运行结果:a=3.141593 :由于:由于a a是单精是单精度浮点型变量,度浮点型变量,只能提供只能提供7 7位有效位有效数字,后面几位数字,后面几位被忽略了被忽略了 283.3 浮点型数据(实数)例例3-4 3-4 浮点型数据的舍入误差浮点型数据的舍入误差#includevoid main() float a,b; a = 123456.789e5; b = a +
28、 20 ; printf(%f,%fn,a,b); 为什么输出a和b的值相等?293.3 浮点型数据(实数)例例3-6 3-6 #includevoid main() float a; double b; a=33333.33333; b=33333.33333333333333; printf(a=%fnb=%fn,a,b); 运行结果运行结果:a=33333.332031b=33333.333333 303.4 字符型数据字符常量字符常量v定义定义:用用单引号单引号括起来的单个括起来的单个字符字符。v只能包含一个字符只能包含一个字符a a, , A A, , 1 1abcabc、“a a”
29、313.4 字符型数据字符常量字符常量v字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值。值。字符型数据与整字符型数据与整数等价数等价,等价整数值为该字符对应的,等价整数值为该字符对应的ASCIIASCII码。字符型码。字符型数据数据与与整型整型数据间可进行算术运算数据间可进行算术运算v转义字符转义字符: :反斜线反斜线“ ”后面跟一个或几个字符后面跟一个或几个字符v转义字符是一种特殊的字符常量转义字符是一种特殊的字符常量。转义字符具有特定转义字符具有特定的含义,不同于字符原有的意义,故称的含义,不同于字符原有的意义,故称“转义转义”字符。字符。例如,在前面各例题例如,在
30、前面各例题printfprintf函数的格式串中用到的函数的格式串中用到的“nn”就是一个转义字符,其意义是就是一个转义字符,其意义是“换行换行”。转义字。转义字符主要用来表示那些用一般字符不便于表示的控制代符主要用来表示那些用一般字符不便于表示的控制代码码。如如 A A6565, a a9797, 0 048 , 48 , nn1010例例 a=a=D D; ; / /* * a=68; a=68; * */ / x= x=A A+5; +5; / /* * x=65+5; x=65+5; * */ / s= s=! !+ +G G / /* * s=33+71;s=33+71;* */ /
31、323.4 字符型数据字符常量字符常量v转义字符及其作用转义字符及其作用 广义地讲,广义地讲,语言字符集语言字符集中的任何一个字符均可用中的任何一个字符均可用转义字符来表示转义字符来表示。表中的。表中的dddddd和和xhhxhh正是为此而提正是为此而提出的。出的。dddddd和和hhhh分别为八分别为八进制和十六进制的进制和十六进制的ASCIIASCII代码代码如如 101 -A 012 -n 102 -B x61 -a 60 -0 483 -( )333.4 字符型数据字符常量字符常量例例 转义字符举例转义字符举例#include void main()() printf(101 x42
32、Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);; 说明说明:A- 101- x41-65运行结果:运行结果:(屏幕显示屏幕显示)A B CI say:“How are you?”C ProgramTurbo C343.4 字符型数据字符常量字符常量例例 转义字符举例转义字符举例#include void main()() printf(“Yb=n”); 运行结果:运行结果:屏幕显示:屏幕显示:=打印机输出:打印机输出:自学自学P40P40例例3-73-7 例例3-83-8353.4 字符型数据字符常量
33、字符常量v常用字符的常用字符的ASCIIASCII码如下(需记住):码如下(需记住): AZ 6590 a z 97122 09 4857 (空格(空格) 32 n (换行符换行符) 10 r (回车符回车符) 13特别注意特别注意: 字符字符0 等于整数等于整数48 , 字符字符0 等于整数等于整数0,即空操作字符即空操作字符 363.4 字符型数据字符变量字符变量v字符型变量用来存放字符常量,注意只能字符型变量用来存放字符常量,注意只能放一个字符。放一个字符。v字符变量的定义形式如下字符变量的定义形式如下:char c1,c2;v在程序中可以用下面语句对在程序中可以用下面语句对c1,c2赋
34、值赋值: c1a;c2 b ;v一个字符变量在内存中一个字符变量在内存中占一个字节占一个字节373.4 字符型数据字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法v一个字符常量存放到一个字符变量中,实际上一个字符常量存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是并不是把该字符的字型放到内存中去,而是将将该字符的相应的该字符的相应的ASCII代码放到存储单元中代码放到存储单元中。例例a=x;a=x; b=y; b=y;01 111000011110 01a:b:383.4 字符型数据字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及
35、其使用方法v这样使这样使字符型数据和整型数据之间可以通用字符型数据和整型数据之间可以通用。 一个字符数据既可以以字符形式输出一个字符数据既可以以字符形式输出,也可以以整也可以以整数形式输出数形式输出。以字符形式输出时以字符形式输出时,系统先将存储系统先将存储单元中的单元中的ASCII码转换成相应字符,码转换成相应字符, 然后输出。然后输出。 以整数形式输出时以整数形式输出时,直接将,直接将ASCII码作为整数输码作为整数输出。也可以对字符数据进行算术运算,出。也可以对字符数据进行算术运算, 此时相此时相当于对它们的当于对它们的ASCII码进行算术运算。码进行算术运算。 39例例3-9 3-9
36、向字符变量赋以整数。向字符变量赋以整数。#include void main() char a,b; a=120; b=121; printf(“%c,%cn%d,%dn”,a,b,a,b); 在第在第4 4和第和第5 5行中,将整数行中,将整数120120和和121121分别赋给分别赋给a a和和b b,它的作用相当于以下两个赋值语句:,它的作用相当于以下两个赋值语句:a ax x b by y; ; 因为因为x x和和y y的的ASCIIASCII码为码为120120和和121121运行结果运行结果: x,yx,y 120,121 120,12140例例3-10 3-10 大小写字母的转换
37、大小写字母的转换#include void main() char a,b; a=x; b=y; a=a-32; b=b-32; printf(“c,cn%d,%dn”,a,b,a,b );); 程序的作用是将两个小写字母程序的作用是将两个小写字母x x和和y y转换成大转换成大写字母写字母X X和和Y Y。从。从ASCIIASCII代码表中可以看到每一个代码表中可以看到每一个小写字母比它相应的大写字母的小写字母比它相应的大写字母的ASCIIASCII码大码大3232。语言允许字符数据与整数直接进行算术运算。语言允许字符数据与整数直接进行算术运算。 运行结果运行结果: X,YX,Y 88,89
38、 88,89413.43.4 字符型数据字符型数据字符串常量字符串常量v字符串常量是一对字符串常量是一对双引号双引号括起来的括起来的字符序列字符序列。v合法的字符串常量合法的字符串常量: :“How do you do.”, “CHINA”“How do you do.”, “CHINA”, “ “a” a” , “$123.45”$123.45”v可以输出一个字符串,如可以输出一个字符串,如printf(“Howprintf(“How do you do.”) do you do.”);423.43.4 字符型数据字符型数据字符串常量字符串常量v是字符常量,是字符常量, “ “a”a”是字符
39、串常量,是字符串常量,二者不同。二者不同。如:如:假设被指定为字符变量假设被指定为字符变量 :char c;char c;c= a;c= a;c c “a”a” ;c c “CHINA”;CHINA”; :不能把一个字符串常量赋给一个字不能把一个字符串常量赋给一个字符变量。符变量。433.43.4 字符型数据字符型数据字符串常量字符串常量v存储:存储:每个字符串尾自动加一个每个字符串尾自动加一个 0 0 作为字符串结束标志作为字符串结束标志( (在写字符串时,不在写字符串时,不要加要加0)0)v字符常量与字符串常量不同字符常量与字符串常量不同字符串字符串“hello”hello”在内存在内存中
40、中h e l l o 0a a 0a“a”没有没有字符串变字符串变量量,用字符数,用字符数组存放组存放 字符串常量占的内存字字符串常量占的内存字节数等于字符串中字节节数等于字符串中字节数加数加1 1。但在输出时不输。但在输出时不输出出00。 44l形式形式l赋值赋值l存储存储45:lANSI CANSI C标准没有具体规定以上各类数据所标准没有具体规定以上各类数据所占内存的字节数而是由各计算机系统自行占内存的字节数而是由各计算机系统自行决定。决定。 Turbo CTurbo C中,中,intint型和型和shortshort型数型数据都是据都是2 2个字节,即个字节,即1616个二进制位。个二
41、进制位。longlong型数据是型数据是4 4个字节,个字节,3232位。而位。而VC+VC+则给则给shortshort型数据分配型数据分配2 2个字节,个字节,1616位,位,intint和和longlong型数据都是型数据都是4 4个字节,个字节,3232位位 。46:l对字符型都是对字符型都是1 1字节。字节。l对浮点数一般都是对浮点数一般都是floatfloat:4 4字节;字节;double:8double:8字节。字节。l可以用可以用sizeofsizeof( (类型名)或类型名)或sizeofsizeof( (变量名)变量名)测出所用测出所用C C系统给各类数据分配的字节数。系
42、统给各类数据分配的字节数。47上机调试程序上机调试程序1 1:#includestdio.h#include Void main()Void main() int int a; a; long b; long b; float f; float f; double d; double d; char c; char c;printf(nint:%dnlong:%dnfloat:%dndouble:printf(nint:%dnlong:%dnfloat:%dndouble:%dnchar:%dn%dnchar:%dn,sizeof(a),sizeof(b),sizeof,sizeof(a),s
43、izeof(b),sizeof(f),sizeof(d),sizeof(c(f),sizeof(d),sizeof(c);); 483.53.5 各类数值型数据间的混合运算各类数值型数据间的混合运算:整型(包括:整型(包括int,short,longint,short,long)、浮点型(包括)、浮点型(包括float,doublefloat,double)可以混合运算。因此,)可以混合运算。因此,整整型、浮点型、字符型数据间可以混合运算型、浮点型、字符型数据间可以混合运算。v在进行运算时,不同类型的数据要先转换在进行运算时,不同类型的数据要先转换成同一类型成同一类型, ,然后进行运算。然后进行运算。493.53.5 各类数值型数据间的混合运算各类数值型数据间的混合运算 必定的转换必定的转换运算对象类型不同运算对象类型不同时转换时转换转换的一般规律:转换的一般规律:转换按数据长度增加的转换按数据长度增加的方向进行,以保证精度不降低。方向进行,以保证精度不降低。这种类型转换是由系统这种类型转换是由系统自动进行的。自动进行的。503.5 各类数值型数据间的混合运算 char ch; int i; float f; double d;ch/i + f*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绘画心理治疗课程-认识你自己课件
- 2021全球多行业重大网络安全事件大盘点
- 安全员年度再教育3
- 2025-2030全球自动紧凑型视野计行业调研及趋势分析报告
- 2025-2030全球商用蘑菇杀菌设备行业调研及趋势分析报告
- 2025年全球及中国粘度过程分析仪行业头部企业市场占有率及排名调研报告
- 2025年全球及中国磨削数控系统行业头部企业市场占有率及排名调研报告
- 2025-2030全球水力冷凝锅炉行业调研及趋势分析报告
- 2025年全球及中国电动甲板机械行业头部企业市场占有率及排名调研报告
- 照明亮化工程施工合同
- 《梅大高速茶阳路段“5·1”塌方灾害调查评估报告》专题警示学习
- 2024年09月北京中信银行北京分行社会招考(917)笔试历年参考题库附带答案详解
- 《大健康解读》课件
- 2025年度交通运输规划外聘专家咨询协议3篇
- 2024年公司领导在新年动员会上的讲话样本(3篇)
- 2025年中国湿度传感器行业深度分析、投资前景、趋势预测报告(智研咨询)
- 人教版道德与法治二年级下册《第一单元 让我试试看》大单元整体教学设计2022课标
- 联合体三方协议合同模板
- 2024年3季度青岛房地产市场季度简报
- 苏东坡词十首
- 2023年天津市文化和旅游局直属事业单位招聘考试真题及答案
评论
0/150
提交评论