int a[10][20];
int b[10];
语法上讲 a[3][4]和b[3][4]都是对一个int类型对象的合法引用,但a是一个真正的二维数组,它分配200个int类型长度的存储空间,并且通过常规的矩阵下标公式20row+col(row表示行,col表示列),计算得到元素a[row][col]的位置.
对b来说该定义只分配10个指针,并且没有初始化.他们的初始化必须以显式的方式进行,比如静态初始化或者通过代码初始化.假定b的每个元素都指向一个具有20个元素的数组,那么编译器就要分配200个int类型长度的存储空间和10个指针的存储空间.指针数组的一个重要优点在于,数组的每一行长度可以不同,
还得强调一下,对b来说,只是声明了10个指针,它所指的内容并不在这里体现,书上说20个元素的数组,这个有点误导的嫌疑,它可以随便指向任何大小.
指针与多维数组
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 今天的南中国,秋天总算是露出了点尾巴。 飒飒的凉风溜进袖口,顺带捎来隔壁的桔子酒香。 以露台为床,视城市为家, 想...
- 上次讲解了基本的语法和一些Swift的小技巧。这期我们来看几个最基本的数据结构:数组,字符串,集合和字典。 数组 ...
