初来此论坛。。 真心求助! 望有心人帮一下。。
几个问题 属于比较菜的 但是网上找不到答案 纠结很久的那种。。1。 (1)如果 typedef struct a B, 然后struct里面是 B *c;
(2)如果 typedef struct a *B, 然后struct 里面是 B c;
请问 (1) (2) 效果/ 原理 一样吗?? 我貌似都用过 貌似效果一样??
2。如果 typedef struct a *B, 然后 struct里面是 B *c;
请问这种情况是怎么理解? 有人说是二次指针?? 那该怎么理解呢?
3.
typedef struct record *Item;
typedef struct STabRep *STab;
struct STabRep{
Item *items;
int count;
int size;
};
typedef int Key; //Can change key type
struct record{
Key keyVal;
int value; //Can change value type
};
这2个typedef 和两个struct;
然后有一个函数
STab stInit(int size){
int i;
STab st = malloc(sizeof(struct STabRep));
assert(st!=NULL);
st->items = malloc(size * sizeof(Item));
assert(st->items!=NULL);
for(i=0;i<size;i++){
st->items[i] = NULLitem;
}
st->count = 0;
st->size = size;
return st;
}
这个函数里面 我不明白 items是Item型的 也就是说 他是一个struct record, 他应该有 items->keyVal 和 items->value。 可是为什么他自己变成了一个数组?? 这里很搞不清楚。。 而且上面的第二个typedef 和 第一个struct 就是我的 第二个问题里的情况
谢谢大家了 第一次来 不知道我的问题是不是很烂。。见丑了