指针与数组

一.指针数组

指针数组是指针还是数组呢?
指针数组是数组,是一个存放指针的数组。
例如:1.int *arr[10];
因为方括号[]的优先级高于*的优先级,所以arr先与方括号[]结合。
2. char **arr[6];   这是一个存放着二级指针的数组。


二.数组指针

数组指针是数组的地址。
例如:int (*p)[10];
解释:因p 先与*结合,说明p是一个指针变量,指针指向的是一个大小为10个整形的数组,所以p是一个指针,指向一个数组,叫数组指针。


三.函数指针

函数指针:保存函数地址的变量。

例如:void (*arr1)();
            void *arr2();
两者的区别:首先第一个arr1先与*号结合,所以arr1是一个指针,指针指向的是一个函数,指向的函数无参数,返回值类型为void.
第二个是一个返回值为void *的一个函数,所以第一个是函数指针。



四.函数指针数组


函数指针数组:将函数的地址存放到数组中。
例如:int (*arr[10])();
arr先和[]结合,所以说明arr是一个数组,是int (*)()类型的函数指针。



五.指向函数指针数组的指针


指向函数指针数组的指针是一个指针,指针指向一个数组,数组的元素都是函数指针。
例如:void (*(*arr)[10])(const char *)
            函数指针数组的指针






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值