c语言深度剖析(37)—指针阅读技巧分析

1.指针阅读技巧解析

c语言深度剖析(37)—指针阅读技巧分析_第1张图片

  • 右左法则 (实在看不懂看这个)
    • 从最里层的圆括号中未定义的标示符看起 
    • 首先往右看,再往左看 
    • 遇到圆括号或方括号时可以确定部分类型,并调转方向 
    • 重复2, 3步骤,直到阅读结束
  • 示例:
#include 

int main()
{ 
    int (*p)(int)

    int (*p1)(int*, int (*f)(int*));
    
    int (*p2[5])(int*);
    
    int (*(*p3)[5])(int*);

    int*(*(*p4)(int*))(int*);
    
    int (*(*p5)(int*))[5];

    return 0;
}
  • 解析如下:

c语言深度剖析(37)—指针阅读技巧分析_第2张图片

  • 最后一个指针p5用typedef定义如下:
typedef int(ArrayType)[5];
 
typedef ArrayType* (FunType)(int*);
 
FunType* p5;
  • 工程中复杂指针尽量用typedef定义。

2.小结

  • 右左法则总结于编译器对指针变量的解析过程 
  • 指针阅读练习的意义在于理解指针的组合定义 
  • 可通过typedef简化复杂指针的定义

你可能感兴趣的:(c语言深度剖析)