C++编程:解析数组与指针的等价表示
需积分: 38 12 浏览量
更新于2024-08-23
收藏 8.66MB PPT 举报
"谭浩强C++ ppt完整版"
在C++编程中,数组和指针是重要的概念,尤其是在处理字符串时。题目中的定义涉及到不同类型的数组和指针,让我们逐一解析它们。
1. `char s[3][5]={"aaaa","bbbb","cccc"};`
这是一个二维字符数组,包含3个大小为5的字符子数组(字符串)。每个子数组存储一个字符串,且由于字符串以空字符`\0`结束,所以实际存储的字符数量为4个。这样的定义允许字符串"aaaa"、"bbbb"和"cccc"分别存储在`s`的不同子数组中。
2. `char **s1={"aaaa","bbbb","cccc"};`
这是指向指针的指针,`s1`是一个指针,它指向的是一组字符指针。这些指针分别指向字符串常量,但这种定义在C++中并不标准,因为`"aaaa"`等是字符串字面量,通常存储在只读内存区域,赋值给`char **`会遇到问题,编译器可能不允许这样的赋值。
3. `char *s2[3]={"aaaa","bbbb","cccc"};`
这是一个字符指针数组,`s2`是一个包含3个元素的数组,每个元素都是一个字符指针,分别指向字符串"aaaa"、"bbbb"和"cccc"。这种定义是正确的,每个指针指向字符串字面量。
4. `char s3[][3]={"aaaa","bbbb","cccc"};`
这定义了一个变长二维数组,因为没有指定第二个维度的大小,编译器会根据初始化的字符串长度自动分配。在这里,每个子数组的大小为4(加上结束的`\0`字符),总共3个子数组。虽然定义的大小是3,但初始化时字符串"cccc"会占用4个位置,所以数组的实际大小为`s3[3][4]`。
5. `char s4[][4]={"aaaa","bbbb","cccc"};`
与`char s3[][3]`类似,这里数组的每一行都能容纳4个字符(包括结束的`\0`)。但由于每个字符串都超过4个字符,所以`"cccc"`无法正确初始化,编译器会抛出错误或警告,因为`"cccc"`的长度超过了数组的宽度。
C++语言发展自C语言,它增强了C语言的功能,包括面向对象编程、模板、异常处理等。C++语言的灵活性使得它广泛应用于系统编程、应用编程、游戏开发、图形用户界面等多个领域。C++中的数组和指针是基础,理解它们的关系和用法对于编写高效且可移植的代码至关重要。尽管C++的语法结构相对宽松,这为程序员提供了极大的自由度,但也增加了学习和调试的难度。因此,深入理解和熟练掌握C++中的数组和指针概念是每一个C++程序员的必修课。
136 浏览量
2019-03-06 上传
2023-12-12 上传
2023-07-28 上传
2024-06-20 上传
2024-06-20 上传
2023-11-07 上传
2023-07-28 上传
李禾子呀
- 粉丝: 24
- 资源: 2万+
最新资源
- 明日知道社区问答系统设计与实现-SSM框架java源码分享
- Unity3D粒子特效包:闪电效果体验报告
- Windows64位Python3.7安装Twisted库指南
- HTMLJS应用程序:多词典阿拉伯语词根检索
- 光纤通信课后习题答案解析及文件资源
- swdogen: 自动扫描源码生成 Swagger 文档的工具
- GD32F10系列芯片Keil IDE下载算法配置指南
- C++实现Emscripten版本的3D俄罗斯方块游戏
- 期末复习必备:全面数据结构课件资料
- WordPress媒体占位符插件:优化开发中的图像占位体验
- 完整扑克牌资源集-55张图片压缩包下载
- 开发轻量级时事通讯活动管理RESTful应用程序
- 长城特固618对讲机写频软件使用指南
- Memry粤语学习工具:开源应用助力记忆提升
- JMC 8.0.0版本发布,支持JDK 1.8及64位系统
- Python看图猜成语游戏源码发布