您的位置:首页 > 编程语言 > C语言/C++

C语言深度剖析之typedef学习

2012-10-06 12:46 225 查看
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]是一致的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: