6.12 一些复杂的指针声明

6.12 一些复杂的指针声明

指针运算符

指针声明:int *
地址运算符:&
间接访问运算符:*
后置自增自减运算符:++、–
成员选择运算符:. 、->

运算符优先级

1级:[ ] ( ) . -> ++ –
2级:++ – * &
SHE -> 土星宇
数组
函数
e点
爱上 ->
土 ±
星宇 *&

一些易混淆的定义

*p++;
&p++;
&stu.a
int *a[10]; 指针数组
int (*a)[10]; 数组指针
int *f (int); 整型指针函数
int (*f)( int); 函数指针
int *(*f)[10]; 指向指针数组的指针

int * ( * (*f) (int) )[10];

右左法则

The right-left rule: Start reading the declaration from
the innermost parentheses, go right, and then go left.
When you encounter parentheses, the direction
should be reversed. Once everything in the
parentheses has been parsed, jump out of it. Continue
till the whole declaration has been parsed.

首先从最里面的圆括号(未定义标识符)看起,
然后往右看,再往左看。每当遇到圆括号时,
就应该掉转阅读方向。一旦解析完圆括号里面
所有的东西,就跳出圆括号。重复这个过程直
到整个声明解析完毕。

int * ( * (*f) (int) )[10]

f是一个函数指针,该指针指向的函数类型为:形参为(int),返
回值还是一个指针
返回值指针类型:指向一个指针数组的指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值