您的位置:首页 > 其它

数组指针与指针数组

2016-04-27 12:24 344 查看
这两个概念有点混淆,但我们可以从本质上去理解他们。

数组指针。

它的本质是指针。下面看一个定义:

int (*p)[5];

意思为,定义一个指针p,必须使它指向一个大小为5,数据类型为int 的数组。p中存放的为数组的首地址。



有两个要点:

1、

当我们定义一个数组指针指向一个数组的时候,类型,大小一定要相对应。不然会出错。

2、

一定要指向整个数组的地址,而不是数组的首地址。

读函数:

<span style="font-size:14px;">int main()
{
char a[5] = { 'A' , 'B', 'C', 'D' };
char(*p1)[5] = &a;
char(*p2)[5] = a;// 错误,原因:指向的是数组首地址。
char (*p3)[4]=&a;//错误,原因:大小不同。
int (*p4)[5]=&a;//错误,原因:类型不同。
return 0;
}
</span>


指针数组。

它的本质是一个数组,定义:int *p1[5];

意思为,创建一个大小为5数组,数组的元素为指针(int*)。这些指针又可以指向相应类型的对象。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: