全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
理解复杂声明 理解复杂声明可用 右左法则 从变量名看起 先往右 再往左 碰到 圆括号就调转阅读方向 括号内分析完后跳出括号 还是按先右后左的顺序 如此循环 直到整个声明分析完 举例 int a 10 变量名为 a 因为 的优先级比 高 所以先看 说明 a 是个数 组 该数组中有 10 个元素 在看左边 是 int 说明数组 a 中的每个元素都是 int 即 a 是一个指针数组 数组元素的类型是整型指针 int a 10 变量名为 a 因为 的优先级最高 所以先看 先往右看 没 有 再往左看 是 说明 a 是一个指针 跳出括号 先往右看 是 说明 a 是个指向数组的指针 再往左看 是 int 说明数组的每个元素都是整型 即 a 是一个指向数组的指针 数组中的每个元素都是整型 include using namespace std int main int i j int a 2 4 1 2 3 4 5 6 7 8 int p 4 a 指针 p 指向数组 a 的第一行 p 1 指向数组 a 的第二行 for i 0 i 2 i for j 0 j 4 j cout p i j cout endl return 0 int f f 是一个函数 返回一个整型值 int f f 是一个函数 返回一个整型指针 int f f 是一个函数指针 所指向的函数返回一个整型值 int f f 是一个函数指针 所指向的函数返回一个整型指针 int f f 是一个整型数组 int f f 是一个指针数组 数组元素的类型是整型指针 int f f 是指针 指向一个数组 数组元素为整型 int f f 是一个数组 数组元素类型为函数指针 所指向的函数返回 整型值 int f f 是一个指针数组 指针所指向的类型是返回值为整型指针的函 数 typedef 的用法 用途一 定义一种类型的别名 注意这并不是简单的宏变换 比如 char s1 s2 或者 define pStr char pStr s1 s2 上面两种形式的定义其实是 char s1 和 char s2 其中的 define 只是简单的 将字符串替换而已 如果我们用 typedef 则不一样 typedef char pStr pStr s1 s2 此时其实是 char s1 和 char s2 用途二 用在 C 语言中 帮助 struct 声明对象 首先我们看一下 struct 声明对象在 C 中和在 C 中的区别 我们定义一个结构体 struct tagPOINT int x int y 在 C 中 如果我们要声明一个对象 p1 比如写作 struct tagPOINT p1 而 在 C 中 则可以去掉 struct 写作 tagPOINT p1 接下来看一下 typedef 的作用 typedef struct tagPOINT int x int y POINT POINT p1 这样就比原来的方式少写了一个 struct 尤其在大量使用的时候 会比较省 事 或许在 C typedef 的这种用途并不是很大 但是理解了它 对掌握以前 的旧代码还是有帮助的 用途三 定义数组类型 例如 typedef int MyintArray 10 MyintArray a 相当于 int a 10 其实这种用法在 struct 也会用到 例如 typedef struct tagPOINT int x int y POINT POINT p2 其实相当于 struct tagPOINT p2 用途四 定义与平台无关的类型 比如定义一个叫 REAL 的浮点类型 在目标一平台上 让它表示最高精度的类型 typedef long double REAL 在不支持 long double 的平台二上 改为 typedef double REAL 在连 double 都不支持的平台三上 改为 typedef float REAL 也就是说 在跨平台时 只要改下 typedef 本身就行 不用对其他源代码做 任何修改 用途五 为复杂的声明定义一个新的简单的别名 方法是 在原来的声明里逐步用 别名替换一部分复杂声明 如此循环 把带变量名的部分留到最后替换 这样 得到的就是声明的最简化版 例如 int a 5 int char a 是一个包含 5 个元素的数组 数组的元素是函数指针 该函数指针所 指向函数的返回值是一个 int 型的指针 函数的形参有两个 第一个是 int 型 第二个是 char 型 变量名为 a 没有其他的复杂声明 pFun 是我们建立的一个类型别名 typedef int pFun int char 使用定义的新类型来声明对象 等价于 int a 5 int char 即用 a 5 来 替换 pFun pFun a 5 void b 10 void b 是一个含有 10 个元素的数组 数组的元素是函数指针 该函数指针所 指向的函数的返回值是 void 函数的形参是另一个函数指针 这个函数指针没 有形参 返回值为 void 变量名为 b 首先为表达式红色部分声明一个新类型 typedef void pFunParam 整体声明一个新类型 typedef void pFun pFunParam 使用定义的新类型来声明对象 等价于 void b 10 void pFun b 10 double pa 9 pa 是一个指针 指向一个含有 9 个元素的数组 数组的元素是一个函数 指针 函数指针所指向的函数没有形参 返回值是 double 型 变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国清肠剂行业市场前景预测及投资价值评估分析报告
- 2026年企业管理顾问师资格考核模拟试卷(含答案)
- 公司纸箱车间技术升级改造及扩建项目环境影响报告表
- 2026年国家开放大学电大专科健康评估形考任务4模拟题及答案详解
- 2026年计算机网络技术与应用测模拟试卷(含答案)
- 2026年仓储知识模拟题及答案详解
- 2026年电大测评模拟题及答案详解
- 2026年工人新入场安全考试模拟题及答案详解
- 2026年车间岗位考模拟题及答案详解
- 2026年临川文化测试题库(含答案)
- 《“诺曼底号”遇难记》课件
- 2026-2027学年教科版六年级上册科学第一单元《健康生活》单元素养测评卷含答案
- 2026年秋季开学中秋诗词赏析课件
- 2025年CRRT在ICU心衰患者中的应用
- 2026秋学期人教版小学数学六年级上册(新教材)教学计划附进度表
- 2026年秋季学期小学四年级上册英语(人教版PEP新教材)教学计划
- 进入新时代的意义(课件)-2026-2027学年统编版道德与法治九年级上册
- 2026年5月16日杭州市萧山区编外招聘笔试真题考生回忆
- VDA6.3-2023版培训教材课件
- AI在增材制造技术应用中的应用
- 中药饮片工艺:传承与创新-走向现代化的中药饮片加工技术
评论
0/150
提交评论