若有定义:int(*p)[4],则p是一个指向含有四个整型元素的一维数组的指针。这句话是正确的吗?

如题所述

正确的。

数组指针是指向数组地址的指针,其本质为指针;指针数组是数组元素为指针的数组(例如 int *p[4],定义了p[0],p[1],p[2],p[3]三个指针),其本质为数组。数组指针的使用在某些情况下与指针数组很相似,要注意区别。

p是一个指针变量,它指向包含4个int元素的一维数组,此时p的增量以它所指向的一维数组长度为单位。

*(p+i)是一维数组a[i][0]的地址;*(p+2)+3表示a[2][3]地址(第一行为0行,第一列为0列),*(*(p+2)+3)表示a[2][3]的值。

扩展资料:

对指针进行初始化或赋值只能使用以下四种类型的值:

1. 0 值常量表达式,例如,在编译时可获得 0 值的整型 const对象或字面值常量 0。

2. 类型匹配的对象的地址。

3. 另一对象末的下一地址。

4. 同类型的另一个有效指针。

参考资料:

百度百科-指针数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-03-12
正确的!!!int (*p)[4]这儿的p是一个指针变量,它指向的是含4个元素的一维数组。
而int *p[4]是定义指针数组p,它由4个指向整形数据的指针元素组成。本回答被网友采纳
第2个回答  2013-11-16
原描述正确。请与int *p[4]比较,后者则是建立一个四个元素的指针数组。
第3个回答  2017-10-04
不正确
是包含4个指向整型的指针元素
第4个回答  2019-03-12
p是一个指针数组名
相似回答