数组指针与指针数组

来源:互联网 发布:python 多线程同时启动 编辑:程序博客网 时间:2024/05/18 06:21

这两个概念有点混淆,但我们可以从本质上去理解他们。


数组指针。


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

                                                        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*)。这些指针又可以指向相应类型的对象。

                                                      

  

0 0
原创粉丝点击