C语言深度剖析之typedef学习

C语言深度剖析很是经典,其中的讲解很是精妙,会触及一些易犯错的地方。对typedef讲解后更是留下一系列纠结的习题,弄了很长间总算有点收获。

分析如下:

///typedef int a[10]typedef int* a[10]/typedef int (*a)[10]//typedef int* (*a)[10]//

a b[10];            int b[10][10];                     int * b[10][10];        int ((*b)[10])[10];                          int *((*b)[10])[10];  
                                                                                                    int (*b[10])[10]                             !=int (*(*b)[10])[10];

a  b;               int b[10];                            int *b[10];                   int (*b)[10];                                int *(*b)[10];

a* b[10];           int ((*b)[10])[10];             int *(*b[10])[10];      int (*(*b)[10])[10]                         int *(*(*b)[10])[10];
                    int  (*b)[10][10]                   int *((*b)[10])[10]       != int *((*b)[10])[10];                     int *(**b[10])[10];

 

a* b;               int (*b)[10];                     int *(*b)[10];           int (**b)[10];                               int *(**b)[10];
                                                          !=   int *(*b[10]);      (int (*d)[10]; b = &d;)
                                                                              != int *(*b)[10];


 分析:

1. typedef定义时即 例如(typedef int a[10]) ,中间的int代表数组中存的内容。

2.定义时在后面一段即(typedef int a[10])中的a[10],在此处定义为数组与对(typedef int d) 做d[10]使用一致。

3.可把后面一部分整体当作一个类型来进行处理。

4.使用时如int* (**b)[10],这个应当这样理解:有一个大小为10的数组里面存的是int型指针,有一个数组指针指向这个数组,而另有一个指针指向这个数组指针,b就是这个指 针。
int ×d[10]; int *(*e)[10];

e = &d; b = &e;

5.typedef int* a[10]与typedef int *a[10]是一致的.


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值