码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-22 16:48:40      阅读:148      评论:0      收藏:0      [点我收藏+]

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

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

假设有一二维数组

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!