##### 声明优先级
- 声明优先级
- **声明优先级**指[[C.声明|声明]]的解析顺序, 从标识符开始解析, 优先考虑括号内的内容, 接着是后缀操作符包括函数和数组, 然后是缀操作符包括指针, 从最靠近标识符的修饰符开始解析, 然后逐步向外扩展, `const`, `volatile` 等说明符和限定符修饰的对象由其相邻的元素决定
- 示例
```c
int *ptr; // ptr 是一个指向 int 类型的指针
int **ptr; // ptr 是一个指向指针的指针,最终指向 int 类型数据
int (*ptr)[5] // ptr 是一个指向含有 5 个整数元素的数组的指针
int* func() // func 是一个返回 int*(指向 int 类型的指针)的函数
int (*func())[5] // func() 是一个返回指向 5 个整数数组的指针的函数
```