关于tpyedef定义的结构体问题
看到一段老美的程序其中一段这样写:
struct HTentry
{
char *key;
int data;
struct HTentry *next;
};
typedef struct HTentry *HTable;//1
...
Htable *HTcreat()
{
HTable *ht=(HTable *) calloc( HTMAXSIZE,siezeof(HTable));
}
想问一下,注释一定义的*HTable 也还是一个结构体吧,为什么要用* ,是为了之后定义别的变量时候易于理解要定义一个结构体指针是吗?
还有一个问题,可不可以如下这样写?
结构体 指针 ty typedef
typedef struct HTentry
{
char *key;
int data;
struct HTentry *next;
}*HTable;
...
[解决办法]
是声明一个 指向HTentry这个结构体的指针类型
第二个可以
[解决办法]
第一个是声明了指针变量
第二个 可以
[解决办法]
typedef struct HTentry *HTable;//1
可以这样理解:
typedef (struct HTentry *) HTable;
HTable的类型是(struct HTentry *), 一个 指向结构体的指针
[解决办法]
定义的*HTable
int *p; // P 是一个int 类型的指针,因为对p 解引用得到了一个int 类型的数值