️c语言指针声明整理

5月 30, 2022 · 1 分钟阅读时长

一、常见声明

int a:声明a是一个整形变量。

int const a:声明一个不可改变的常量a。

int *a:可以理解为*a是一个整形,所以a就是指向整形的一个指针。

int **a**a是一个整形,则a就是一个指向*a的一个指针。

需要注意的是int *a,b,这样声明后只有a是指针。

int const *p:p表示一个指向不可改变的整形常量的指针。

int *const p:声明一个不可改变的指针,指向一个可变的整形变量。

二、与函数声明结合

int f():声明了一个函数f(此处采用的是旧式声明,不提供形式参数)。

int *f():此处f()优先级高,先进行结合,所以f表示一个返回指向整形的指针的函数。

int (*f)():此处*f先发生了结合,对其进行函数求值后会返回一个整形,所以f代表的是一个指向返回整形的函数的函数指针。

int *(*f)():声明了f为一个指向一个返回整形指针的函数的指针。

三、与数组结合

int a[]:声明一个整形数组。

int *a[]:下标操作符优先级更高,声明一个数组,里面的内容都是指向整形的指针。

int (*a[])():a表示一个函数指针数组,每一个都指向返回整形的一个函数。