您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计_03章 数据类型_运算符与表达式
LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第1页基本类型:charintfloatdoubleenum构造类型:Arraystructunion数据类型空类型void指针类型:与以上各种类型相结合。第三章数据类型、运算符与表达式§3.1C的数据类型C语言提供了丰富的数据类型(DataType),如下所示:LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第2页§3.2常量与变量一、标识符用来表示变量名,函数名,数组名,文件名,类型名的有效字符序列。C语言的标识符分三类:保留关键字、预定义标识符、用户标识符。1.保留关键字均用小写字母表示,如:charintautobreaklong等。保留关键字不能作用户标识符使用。(见p375,附录II)2.预定义标识符通常供C的库函数名或预编译处理中的专用命名使用。如:NULL=0等。3.用户标识符C程序中用户用于表示变量名,函数名,数组名,文件名,类型名的有效字符序列。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第3页用户标识符的命名规则如下:a.由英文字母、数字、下划线组成,且必须是由字母或下划线开头。b.区分大小写,即大、小写英文字母具有不同的含义。c.长度随机器系统的不同而不同。一般取前面8个字符。如:student–name,student–number可改为stud–nam,stud–num(注:TurboC可取32个字符)d.应尽量“简洁明了,见名知意”。例:以下各标识符组中,合法的用户标识符为:1)A)Pad!B)getccC)voidD)a*2)A)b–bB)CCp?C)hiyD)_isw3)A)_0123B)_delC)ifD)keep%答案:(1)B(2)C,D(3)A,BLanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第4页符号常量是一种标识符形式的常量,即用一个标识符代表一个常量。符号常量名习惯上用大写字母表示,这是一种约定。例2.1#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);}常量,是指在程序运行过程中,其值不能被改变的量。常量包括:整型常量(1,4,–3,0);实型常量(1.23,0.345);字符常量(‘a’,‘d’);字符串常量(“CHINA”);符号常量。二、常量和符号常量LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第5页注意:符号常量在其作用域内不能改变,也不能被赋值。例:#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);PRICE=40;/*╳*/total=num*PRICE;printf(“total=%d”,total);}LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第6页变量,是指在程序运行过程中,其值可以被改变的量,它对应着内存空间中一定长度的存储单元。一个变量必须有一个变量名,才能在程序中被引用。变量的命名规则同用户标识符一致。习惯上变量名用小写字母表示。C语言中,变量必须“先定义,后使用”。定义格式:存储类型数据类型变量名如:autointa;可省略为:inta;这条定义语句的作用:表示定义了一个变量名为a的整型变量,编译系统在处理这条变量定义语句时,就会在存储空间中为其分配两个字节的存储单元,并按整型格式存储数据。三、变量LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第7页例:inta=3;3a变量名变量值2个字节的存储单元……定义变量的作用:a.根据变量的数据类型而分配相应的内存空间;b.保证变量的正确引用(地址在哪里,有多少字节,存储格式);c.根据变量的类型确定变量参与的运算是否合法。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第8页一、整型常量十进制整型常量。如:123,0,–45八进制整型常量,用0(零)开头。如:012,–011十六进制整型常量,用0x开头。如:0x12,-0x11整型常量表示形式二、整型变量1.定义变量定义的一般格式:存储类别数据类型变量名如:intx;inta,b;2.分类基本型int短整型shortint或short长整型longint或long§3.3整型数据LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第9页说明:可以加修饰符unsigned无符号型如:unsignedint;unsignedshort;unsignedlongsigned有符号型(可以缺省)如:signedint;signedshort;signedlong其中signedint和int等价。signedlong和long等价。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第10页3.整型数据的存储方式如:inta;a=10;0000000000001010a◤对于有符号型整型数据,其存储单元的最高位代表符号位(0为正;1为负)。◤对于无符号型整型数据,无符号位,存储单元的所有位均用于存放数值本身。下面以整数13为例:short型符号位int型long型unsignedint型unsignedshort型unsignedlong型00000000000011010000110100000000000000000000000000001101000000000000110100000000000011010000000000001101000000000000000000000000注意:在今后理解数据类型和变量这两个概念时,要始终把握两条主线。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第11页4、原码、反码和补码(补充)在计算机进行数据运算的过程中,机器数还使用原码、反码和补码的表示法。◢原码:正数的符号位用0表示,负数的符号位用1表示的二进制数,称为原码。◢所有正数的原码、反码和补码相同。◢对于负数:负数的反码为对应正数的原码取反;负数的补码为它的反码加1(即对应正数的原码取反加1)。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第12页000000000000101010的原码000000000000101010的反码1000000000001010–10的原码000000000000101010的补码000000000000101010的原码1111111111110101–10的反码1111111111110110–10的补码例如:10和-10的原码,反码,补码分别为:LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第13页将一个负数的补码转换为十进制数:a:取反b:加1,得对应的正数c:再转换成相应的十进制负数则相应的十进制负数为:-10如:求以下补码对应的十进制数10000000000000100111111111111101100000000000001010取反加1LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第14页a=32767;b=a+1;32767则相应的十进制负数为:b=-32768011111111111111110000000000000000111111111111111“溢出”问题的分析:+11000000000000000+1取反32768如:main(){inta,b;a=32767;b=a+1;printf(“%d,%d”,a,b);}5.整型数据的溢出一个signedint变量的最大允许值是32767。超出这个范围则会发生溢出。结果为:32767,–32768LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第15页327660-1011111111111111000000000000000001111111111111111无符号与有符号整型变量不断加1后的变化情况:1000000000000000-32768-32767100000000000000132767011111111111111110000000000000001…………0655350000000000000000111111111111111110000000000000001655341111111111111110注意:基本整型占2个字节,能够表示216(65536)个状态。011111111111111110000000000000003276732768…………LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第16页6.整常量的类型常量的类型是根据常量的值所在的数值范围来确定的:(1)值在–32768~32767范围的整常量,视为int型,可赋值于int型和long型。若值超出了上述范围,而在–231~(231–1)范围,则视为long型,只能赋值于long型。(2)一个非负值的整常量,可以赋给unsignedint型或unsignedlong型变量。但应考虑数值的范围。如:50000unsignedint变量,正确。70000unsignedint变量,则溢出。因为unsignedint的范围在:0~65535(0~216–1)。(3)用户可以在一个整常量后面加一个字母L或l,人为指定它为long型常量。这主要用在实参和形参之间实现类型匹配,在赋值语句中给整常量加上L或l没有意义。LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第17页32767(215–1)–32768(-215)(231–1)–23165535(216–1)0(232–1)int或shortlonglongUnsignedintUnsignedshortUnsignedlong整型常量的取值与类型的关系LanJiming@sohu.comcopyrightSunday,January19,2020四川理工学院计算机科学系《C语言程序设计》第18页一、实型常量实数(realnumber)是一种带有小数的数据。在书写的时候,它有以下两种形式:1.小数形式:十进制数+小数点(必须有小数点)如:0.123;.123;123.0;123.等。2.指数形式:小数+e(或E)+指数部分如:264.9e+1126.49E+122.649E13规范化的指数形式:指
本文标题:C语言程序设计_03章 数据类型_运算符与表达式
链接地址:https://www.777doc.com/doc-3156713 .html