解析C/C++复杂类型声明详解
需积分: 9 199 浏览量
更新于2024-07-31
收藏 75KB DOC 举报
本文主要探讨如何理解和解析C和C++中的复杂类型声明,针对那些可能会让人困惑的复杂语法,如`int * (* (*fp1)(int) ) [10]`。文章从基础开始,首先介绍简单声明,如`int n;`表示一个整型变量,以及`int *p;`表示一个指向整型的指针。作者强调在声明指针或引用时,应保持清晰易懂的格式,避免误解。
接着,文章深入到指针的嵌套,如`char argv;`表示一个指向字符数组的指针数组。它指出,指针的层级可以无限递增,但并非所有组合都是合法的,例如`int p1`表示一个指向整型指针的指针,`int *&p2`表示一个指向整型指针的引用是合法的,但`int&* p3`(引用的指针)和`int&&p4`(引用的引用)则不合法。
文章还讨论了数组的声明,如`int RollNum[30][4];`,其中`int(*p)[4]=RollNum;`表示`p`是一个指向4个整数的数组的指针,而`int*q[5];`则是包含5个整型指针的数组。
在混合使用*(指针)和&(引用)时,要特别注意其语义差异,比如`intp1`表示一个指针到指针,`int*&p2`是一个引用到指针,而`int&*p3`则是非法的,因为引用不能直接指向另一个引用。
虽然复杂的类型声明在某些场景下可能有助于灵活性,但作者明确指出它们不是推荐的编程风格,其重点在于帮助读者掌握解析技巧,以便在遇到复杂声明时能准确理解其含义。阅读本文时,建议在高分辨率屏幕上,以确保代码与注释的清晰显示。
2010-06-08 上传
2022-09-23 上传
2023-07-09 上传
2023-06-01 上传
2023-05-24 上传
2023-06-13 上传
2023-05-27 上传
2023-04-03 上传
2023-05-27 上传
2023-06-03 上传
![](https://profile-avatar.csdnimg.cn/4f69ce8cb126430b9fac51332655ff1b_p4042333869.jpg!1)
p4042333869
- 粉丝: 1
- 资源: 3
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景