- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级语言程序设计PPT教学课件-第2章_C 数据类型
* * * * * 红色的已经讲过,蓝色的后续 * * 例如 已知 int n=2,n*2+l-10%3就是一个算术表达式 * * * 函数参数与返回值 * * * * 强制类型转换不改变表达式本身的值类型,而是产生一个临时变量 * * * 在c编译中,把枚举元素按常量处理的,所以不能对枚举元素赋值:如果出现赋值语句:Mon=0 是错误 * 例:定义表示星期的枚举类型Day,today和tomorrow都是类型为Day的变量 * * * 将不同类型的数据组织成为一个整体就要用到结构类型 结构变量的定义方式有3钟: 1。先定义结构体,再定义变量 (如上例中s1)结构名 变量名; 2。定义结构类型的同时定义变量名,如上例中s2 struct [结构名] { … 成员类型 成员名n; } 变量名1,变量名2。。 3。没有类型名,而是直接定义结构变量 struct { … 成员类型 成员名n; } 变量名1,变量名2。。 * * * * 若成员本身又属于一个结构体类型,则要用成员运算符,一级一级找到最低一级的成员,只能对最低一级成员进行赋值或存取运算。 stud.birthday 错!因为birthday是一个结构变量,整体不能存取! * * * * 数据分为常量和变量,程序执行期间值可以改变的称为变量,不能被改变的成为常量 * * * * * * * ‘a’的ASCII码为97 ,16进制为0x6100 * * 这是c++引入的 * * * definition:A definition provides information that allows the compiler to allocate memory for objects or generate code for functions. declaration:A declaration introduces names and their types into a program without necessarily defining an associated object or function. However, many declarations serve as definitions. * 简单类型变量初始化简单,复杂类型变量初始化后续 问题:变量定义时系统是否会自动为其初始化? * 修饰符分为三种 规格:long ,short,double 符号:signed,unsigned 存储类型: extern register static auto volatile 前两种可以直接作为数据类型定义的一部分,如unsigned long int:无符号长整型 Volatile 多线程中使用 用volatile关键字声明变量,是用来告诉编译器每次对此变量的引用都需要从内存地址中读取,即取消编译器对此变量的优化编译。 ? ? ? ? 没用volatile声明的变量,当某次引用时,被编译器从内存地址中读取到AX寄存器,那么在其后的引用中,如果AX寄存器没有被改编,那么编译器会优化成直接读取AX寄存器。 * 而符号常量虽然有自己的存储区,也只相当于只读不写的变量。 * * 包含在括号中的表达式仍是一个表达式,其类型与值与未加括号一致。 * * 当除数和被除数都是正数,结果为正; 若有一个负数,结果符号未定义。 -5/3有的机器得-1,而有的得-2,多数采取“向零取整”得-1 浮点数运算会产生精度问题(受底层数据类型的固有精度影响,产生浮点舍入) * * * * * * * * * * * * 华北电力大学计算机系 2.4.3 联合 一种特殊的结构,一个联合中的数据成员在内存中的存储是互相重叠的,每个成员都在相同地址开始 C语言中联合的类型和变量定义: union [联合名] { 成员类型 成员1; 成员类型 成员2; … 成员类型 成员n; } [变量名]; 华北电力大学计算机系 union exam { int a; double b; char c; }x; c a b sizeof(exam) //8 成员的引用:x.a、x.b、x.c 华北电力大学计算机系 例2.5 给出以下程序的执行结果。 #include iostream.h void main() { union value { char c; int n; double d; }data; coutsizeof(data)=sizeof(data)endl; data.c=a; coutdata.cendl;
文档评论(0)