- 比如:int ( * func_p ) ( double );
- 首先着眼于标识符。
func_p is
- 因为存在括号,(*
func_p) 先被处理,这里着眼于*
func_p is a pointer to
- 解释后面的(
),这是用于函数的,参数是double
func_p is a pointer to
function(double) returning
- 最后,解释数据类型修饰符int
func_p is a
pointer to function(double) returning int
- 翻译成中文就是:
fun_p是一个指向返回int的函数的指针
- 再比如:double (*hoge)[3],翻译为:
- hoge is a pointer to array(个数为3) of double
- hoge 是一个指向double的数组(个数为3)的指针
- 还有:int (*func_table[])(double)
- func_table is an array of pointers to function(double) returning
int
- func_table 是一个指向返回int的函数的指针的数组。
用英文加优先级来解读C的声明,布布扣,bubuko.com
用英文加优先级来解读C的声明
原文:http://www.cnblogs.com/amghost/p/3572148.html