您的位置:首页 > 编程语言 > C语言/C++

C语言——声明总结

2018-04-02 11:08 309 查看
int *f();//返回指向int指针的函数。

int (*pf)(); //指向返回int的函数的指针。pf is pointer to function returning int


C语言的声明中分为”类型”和”标识符”,把标识符取出后,剩下就是类型名(基本类型和派生类型,派生类型是由结构体、联合体、数组、函数、指针这些类型本身和有;之所以被叫做派生类是因为他们可以无限的派生出很多派生类型)。

解读C的声明(英语版)

找到标识符(变量名或函数)名称。

从标识符最近的地方开始依照”小括号、数组[ ]、函数()、指针* “的顺序解读。

用of,to,returning连接。

追加最左边的数据类型修饰符。

也可用倒叙中文版。

举例:用英语的方式解读

int (*func_p)(double)

//1.找到函数名:func_p
func_p is

//2.存在小括号(*func_p)
func_p is pointer to

//3.遇见了函数标识符(*func_p)(double)
func_p is pointer to function(double) returning

//4.追加数据类型修饰符int
func_p is pointer to function(double) returning int //翻译过来就是:func_p是返回int的函数的指针。


举例:用中文的方式解读

int (*func_p)(double)

//1.找到函数名:func_p
func_p

//2.存在小括号(*func_p)
func_p是一个指针(此时找到描述func_p的形容词)

//3.遇见了函数标识符(*func_p)(double)
func_p是一个指向函数的指针(此时找到描述指针的形容词)

//4.追加数据类型修饰符int
func_p是一个指向返回值是int类型的函数的指针(此时找到描述函数的形容词)


练习:

double (*p)[3];//指向double类型的数组(长度为3)的指针。
double *pp [3];//double类型的指针的数组(长度为3)。
int (*func_table[10])(int a);//指向返回值为int的函数(参数为int)的数组(长度为10)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 声明