第一种
typedef struct Arr
{
int * pBase;//存储的是数组第一个元素的地址
int len;//数组所能容纳的最大元素个数
int cnt;//当前数组有效元素的个数
} a;
这种等价于
typedef Arr a;
这种类似非结构体的
typedef int zhangsan
也就是给int取了一个新名字叫zhnagsan,其实结构体中的大括号可以理解成一个空格,这样子typedef的用法其实都一样了
第二种
typedef struct Arr
{
int * pBase;//存储的是数组第一个元素的地址
int len;//数组所能容纳的最大元素个数
int cnt;//当前数组有效元素的个数
}* a;
加一个*号其实类似于非结构体中的
typedef int * lisi
也就是相当于给int指针类型起了一个新名字叫做李四
在代码中
struct Arr
{
int * pBase;//存储的是数组第一个元素的地址
int len;//数组所能容纳的最大元素个数
int cnt;//当前数组有效元素的个数
}*
这一部分才是一个整体
第三种
前两种结合起来
typedef struct Arr
{
int * pBase;//存储的是数组第一个元素的地址
int len;//数组所能容纳的最大元素个数
int cnt;//当前数组有效元素的个数
}* PA,A;
这种表示中PA等价于 struct Arr *
A等价于struct Arr