【C】深入浅出之指针

目录

1. 指针数组

2. 数组指针

3. 函数指针

4. 函数指针数组

5. 函数指针的数组的指针


1. 指针数组

char *str[10];

指针数组,顾名思义是一个 数组,其元素是一个 指针

上述代码是定义一个指针数组,其数组元素为指向字符的指针。

所谓指针数组,重头戏在于数组,指针可以抽象为修饰符,那么如何来理解指针数组呢?很简单,[] 的优先级高于 *,因此 [] 先被结合,加上数组名,就构成了数组。

2. 数组指针

int (*p)[10];

数组指针,顾名思义是一个 指针,其指向一个 数组

上述代码是定义一个数组指针,其指向一个大小为 10 个整型数字的数组。

所谓数组指针,重头戏在于指针,数组可以抽象为修饰符,那么如何来理解数组指针呢?很简单,() 的优先级高于 [],而 () 内部是一个指针变量,这样就可以判断是数组指针了。

3. 函数指针

int (*fun)();

函数指针,顾名思义是一个 指针,其指向一个 函数

上述代码是定义一个函数指针,其指向一个函数。

所谓函数指针,重头戏在于指针,函数可以抽象为修饰符,那么如何来理解函数指针呢?很简单,() 的结合性为从左到右,第一个 () 内部是一个指针变量,第二个 () 是函数调用操作符,它迫使间接访问在函数调用之前进行,使得 fun 成为一个函数指针,它指向的函数返回一个整型值。

4. 函数指针数组

int (*fun[])();

函数指针数组,顾名思义是一个 数组,其数组元素为一个 指向函数地址的 指针

上述代码是定义一个整型函数指针数组,其数组元素为一个指向函数地址的指针。

所谓函数指针数组,重头戏在于数组,函数指针可以抽象为修饰符,那么如何来理解函数指针数组呢?很简单,() 的结合性为从左到右,第一个 () 内部是一个指针数组,第二个 () 是函数调用操作符。

5. 函数指针的数组的指针

int (*(*fun)[])();

函数指针的数组的指针,顾名思义是一个 指针,其指向一个 数组,数组元素为一个 函数指针

上述代码是定义一个整型函数指针数组指针,其指向一个函数指针数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值