Version3.0‹#›变量和类型第二章2回顾•命令、程序以及软件之间的区别•C语言的程序结构•算法•流程图•列出流程图中使用的符号3目标•讨论变量•区分变量和常量•列出C语言程序中的各种数据类型并使用它们•讨论算术运算符4变量15内存中的数据数据15内存•应用程序要为每一项数据分配内存–需要多少内存–数据被存储在哪个通过变量,可以为内存中的位置提供一个有意义的名称5示例:变量BEGINDISPLAY‘Enter2numbers’INPUTA,BC=A+BDISPLAYCEND•A、B和C是伪代码中的变量•操作系统负责集注变量在内存中的地址•要引用内存空间中的值,只需指定变量名6常量•常量就是一个保持不变的值•示例–5数字/整型常量–5.3数字/浮点常量–'Black'字符串常量–'C'字符常量7标识符•变量、函数、标签和其他各种用户定义的对象的名称都称为标识符-一些正确的标识符名称Arena、s_count、marks40、class_one-不正确的标识符示例1sttest、oh!god、start...end•标识符的长度可以是任何合适的数值,但是各种编译器能够识别的变量中的字符数目有所不同•C语言中的标识符区分大小写8标识符的命名规则变量名应该以字母开头应该避免使用专有名词来命名变量第一个字符后面可以跟字母和数字变量名应该是有意义的而且是描述性的应该避免使用可能引起混淆的字母编写程序时应该遵循一些标准的变量命名约定编写程序时应该遵循一些标准的变量命名约定9关键字•在一个特定语言的上下文中有特殊意义的单词•所有的数据类型都是保留的关键字•在指定变量名的同时还要指定将要存储在其中的数据类型-变量声明10•C语言中的关键字•autobreakcasecharconst•continuedefaultdodoubleelse•enumexternfloatforgoto•ifintlongregisterreturn•shortsignedsizeofstaticstruct•switchtypedefunionunsignedvoid•volatilewhile11数据类型2-1•数字–整数,例如:10或178993455–实数,例如:15.22或15463452.25–正数,例如:8或654–负数,例如:-4或-90•字符串,例如:John•逻辑值,例如:Y或N12数据类型2-2•数据类型描述了变量中将存放的数据的种类•数据类型位于变量名的前面例如:数据类型int将位于变量名varName的前面数据类型变量名intvarName13基本数据类型voidchardouble基本数据类型floatint单个或多个数字系列存储含有小数位超出float类型大小的值存放一个字符没有任何类型的数据14int类型•存储数字数据•声明方式:intnum;•不能存储类似于“Alan”或“abc”等任何其他类型的数据•分配16位(2个字节)的内存空间,整数的范围是从-32768到32767•示例:12322、0、-23215float类型•存储整数或包含小数位的值•声明方式:floatnum;•最高精度是6位•分配32位(4个字节)的内存空间示例:23.05、56.5、3216double类型•存储超出float类型大小的限制的值•声明方式:doublenum;•最高精度是10位•分配64位(8个字节)的内存空间示例:23.3423232417char类型•存储一个字符信息•声明方式:chargender;gender='M';•分配8位(1个字节)的内存空间示例:'a'、'm'、'$'、'%'、'1'、'5'18void类型•告诉编译器没有任何类型的值•声名方式:voidnum•不返回任何值19派生数据类型intshortshortint派生数据类型基本数据类型数据类型修饰符intunsignedintunsignedint/doubleLongint/longdoublelong通过修改四种基本数据类型以适应不同的情况而产生的数据类型叫做派生数据类型只允许正数比int占更少的空间比int/double占更多的内存空间20signed和unsigned类型•signed最重要的是修改char数据类型•unsigned类型指定变量只能接受正值unsignedintvarNum;varNum=23123;•加上unsigned前缀,正数的取值范围是原来的两倍•修饰符可以与int和float数据类型一起使用•unsignedint支持的范围是从0到6553521long和short类型•要求某个整数的长度比正常长度更长或更短时,使用long和short•shortint占16位(2个字节)的内存空间–允许的数字范围是从-32,768到32,767•longint占32位(4个字节)的内存空间–2,147,483,648到2,147,483,647•longdouble占128位(16个字节)的内存空间22数据类型及其范围2-1类型近似大小(位)最小范围char8-128到127unsigned80到255signedchar8-128到127int16-32,768到32,767unsignedint160到65,535signedint16与int相同shortint16与int相同unsignedshortint160到65,53523数据类型及其范围2-2类型近似大小(位)最小范围signedshortint16与shortint相同unsignedshortint16与shortint相同longint32-2,147,483,648到2,147,483,647signedlongint320到4,294,967,295unsignedlongint320到4,294,967,295float32六位精度double64十位精度longdouble128十位精度24声明示例main(){charabc;/*声明abc*/intxyz;/*声明xyz*/floatlength;/*声明length*/doublearea;/*声明area*/longliteyrs;/*声明liteyrs*/shortarm;/*声明arm*/}25算术运算符一元运算符操作二元运算符操作-一元减+加++递增-减--递减*乘%模/除^幂计算一个整数除法的余数幂运算符的示例:9^29是底数,2是指数结果是9*9=81++和--运算符前置和后置有很大区别26总结•什么是变量•常量的定义•变量和常量的区别•什么是标识符•关键字的定义•运算符的类型