标签:数组 语言 程序设计 地址 二维数组 一个 假设 指针 设计
二维数组可以看成一个以一维数组作元素的一维数组,因此,二维数组的储存和指针操作上很容易让人产生困惑:
假设有一二维数组
a[3][4] = { {1,2,3} , {4,5,6} , {7,8,9} }
a——二维数组名,实质是 以{1,2,3} , {4,5,6} , {7,8,9}为元素的一维数组的首元素的指针,其值为 a[0]的地址(简称 行地址)
a[0] ——一维数组名,实质是 以1,2,3为元素的一维数组的首元素指针,其值为 a[0][0]的地址(简称 列地址)
a[0][0] ——二维数组a[3][3] 和一维数组(子数组)a[0] 的元素
由此可知,
a+i=&a[i] 行地址相等 对应的指针为 数组指针 如 (*p)[4]
a[i]=*(a+i)=&a[i][0] 列地址相等 对应的指针为 普通指针 *p
但a 不是指针数组
标签:数组 语言 程序设计 地址 二维数组 一个 假设 指针 设计
原文地址:https://www.cnblogs.com/miyazakehime/p/9517853.html