##### 声明优先级 - 声明优先级 - **声明优先级**指[[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 个整数数组的指针的函数 ```