【C语言及程序设计】二维数组、数组指针和指针数组

2021-07-20 12:08

阅读:652

标签:数组   语言   程序设计   地址   二维数组   一个   假设   指针   设计   

二维数组可以看成一个以一维数组作元素的一维数组,因此,二维数组的储存和指针操作上很容易让人产生困惑:

假设有一二维数组

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 不是指针数组

 

【C语言及程序设计】二维数组、数组指针和指针数组

标签:数组   语言   程序设计   地址   二维数组   一个   假设   指针   设计   

原文地址:https://www.cnblogs.com/miyazakehime/p/9517853.html


评论


亲,登录后才可以留言!