数组
来源:互联网 发布:js弹出确认对话框 编辑:程序博客网 时间:2024/05/29 16:32
数组 一维数组和多维数组
一维数组和多维数组的概念,形式,用法想必我们了然于胸了。对于我来说,有些细节,平时我没有注意,但时常困扰于我。所以现在写出来,与大家分享。
数组名(多维数组以二维为例)
一维数组:数组名的值是一个指针常量,也就是数组第1个元素的地址。它的类型取决于数组元素的类型:如果它们是int类型,那么数组名的类型就是”指向int的常量指针”;如果它们是其他类型,那么数组名的类型就是”指向其他类型的常量指针”
二维数组: 由于二维数组的特殊性(第一维的元素实际是另一个数组),数组名是指向一个包含另一个数组的指针。如int a[3][10] 那么,a数组名是一个指向整型数组的指针,并不是一个指向整型的指针。
初始化
多维数组尽量使用大括号表示数组的维数,易使代码易度。
与指针
以实例为例:
int a[10]; /* 一维数组 */int *ap = a; /* 正确, 一维数组名类型是一个指向整型的指针int *ap = &a; /* 正确, 指向了一维数组的第一个元素 */int b[3][10]; /* 二维数组 */int *bp1 = b; /* 错误,编译器会报出类型不兼容的错误信息, 因为b的类型是指向一个包含另一个数组的指针。*/int *bp1 = b[0]; /* 正确, b[0] 是另一个数组,即一维数组名 */int (*bp2)[10] = b; /* 正确, int (*bp2)[10] 在声明一个指向整型数组的指针,数组大小为10 */int *bp3 = &a[0][0]; /* 正确, 指向了二维数组的第一个整型元素 */
在内存存储方式
正因为这样的存储方式,以下的操作是正确的。
int *ap = &a[0]; ap++;/* 取数组第一个元素的地址 */int *bp = &b[0][0]; bp++; /* 取数组第一个元素的地址 */
已传相关测试代码: https://github.com/linuxkoala/test_src array目录。
0 0
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 安卓横竖屏切换的生命周期(重点)
- 在 Windows 命令提示符进入到文件解压目录
- 《LINUX3.0内核源代码分析》第二章:中断和异常(3)
- poj 1322 Chocolate 概率dp
- 针对Xcode升级到8之后,注释失效的解决方法
- 数组
- iOS绘图——Quartz 2D使用方法
- PAT乙级.1017. A除以B (20)
- foreach 循环详解
- Jenkins学习总结(6)——了解DevOps的前世今生
- 进程间的几种常用通信方式
- 分享Kali Linux 2016.2最新镜像20160919
- radio单选框效果代码(css3)
- native关键字简单理解