指针

数组指针和指针数组

每次看到代码中的数组指针或者指针数组都要纠结半天,所以下定决心区分这两个类型。

数组指针

形容词在前,名词在后所以这是一个指向数组的指针。

int (*p)[n]; //优先级()>[]>*

小括号优先级最高,所以这是一个指针,中括号其次所以这是一个数组指针。

指针数组

形容词在前,名词在后所以这是一个值全是指针类型的数组。

定义 int *p[n]; //优先级()>[]>*

中括号优先级大于,所以这是一个数组,数组中元素类型是即指针类型。

指针函数和函数指针

指针函数

指针函数:形容词在前,名词在后所以这是一个返回指针类型的函数

定义:类型标识符 *函数名(参数表)

int *f(x,y); //优先级()>[]>*

小括号优先级最高,需要参数,所以这是一个函数,*其次所以这是一个返回指针类型的函数。

函数指针

函数指针:形容词在前,名词在后所以这是一个指向函数的指针类型

定义:类型标识符 (*函数指针变量名)(参数)

int (*f) (int x); /*声明一个函数指针 */
小括号优先级最高,其次是,所以先是f,本质是个指针,所以这是一个指向函数的指针。

posted @ 2019-06-18 22:27  穷书者  阅读(133)  评论(0编辑  收藏  举报