结构体指针有关问题?
结构体指针问题?????
#define TSIZE 45
struct film {
char title[TSIZE];
int rating;
} ;
typedef struct film Item;
typedef struct node {
Item item;
struct node *next;
} Node;
typedef Node * List;
1. list movice 和 list * movice 有什么区别????
2. 当在主函数时对list链表初始化用-Initializelist(&movice);
void Initializelist( List * plist)
{
* plist = NULL;
}
&movice指向list结构的指针,而plist是又是指向movice指针的指针,
是不是因该这样定义(lsit plist))???
请大家给各个解析,在这里谢先!!!
------解决方案--------------------
1、指针和指向指针的指针
即list movice:struct node *movice
list * movice:struct node **movice
2、当要在函数里改变指针的值时,应该传入指针的地址
------解决方案--------------------
1. list movice 和 list * movice 有什么区别????
=====================
list movice < == > Node *movice;
list *movice < == > Node **movice;
------解决方案--------------------
1. List movice
Initializelist(&movice);
void Initializelist( List * plist)
{
* plist = NULL;
}
调用得挺好啊....
------解决方案--------------------
Initializelist(&movice);
传地址到void Initializelist( List * plist)是不是把movice指向的结构的指针赋值为NULL???
----------------------------------------------
是将movice = NULL
------解决方案--------------------
list movice 结构体指针
list * movice list*所定义的变量是一个指向list类型的指针,而list又是一个指针
所以list * movice定义的就是一个指向指针的指针,多级指针
void Initializelist( List * plist)
{
* plist = NULL;/*对指针取了内容,plist为指针的指针,*plist为指针*/
}
------解决方案--------------------
1. list movice 和 list * movice 有什么区别
list movice == Node *movice;
list *movice == Node **movice;
2. 当在主函数时对list链表初始化用
Node Headlist;
Node *pMyHeadlist = NULL;//你的Initializelist(&movice)目的好像是这一步
pMyHeadlist = &Headlist;
int InitList(pMyHeadlist)
{
memset(pMyHeadlist-> item-> title,0,sizeof(pMyHeadlist-> item-> title));
pMyHeadlist-> item-> rating = 0;
pMyHeadlist-> next = NULL;
return 0;
}
链表只是一个节点指针,你初始化这个指针就可以了 ,哦 ,这是个头节点.
#define TSIZE 45
struct film {
char title[TSIZE];
int rating;
} ;
typedef struct film Item;
typedef struct node {
Item item;
struct node *next;
} Node;
typedef Node * List;
1. list movice 和 list * movice 有什么区别????
2. 当在主函数时对list链表初始化用-Initializelist(&movice);
void Initializelist( List * plist)
{
* plist = NULL;
}
&movice指向list结构的指针,而plist是又是指向movice指针的指针,
是不是因该这样定义(lsit plist))???
请大家给各个解析,在这里谢先!!!
------解决方案--------------------
1、指针和指向指针的指针
即list movice:struct node *movice
list * movice:struct node **movice
2、当要在函数里改变指针的值时,应该传入指针的地址
------解决方案--------------------
1. list movice 和 list * movice 有什么区别????
=====================
list movice < == > Node *movice;
list *movice < == > Node **movice;
------解决方案--------------------
1. List movice
Initializelist(&movice);
void Initializelist( List * plist)
{
* plist = NULL;
}
调用得挺好啊....
------解决方案--------------------
Initializelist(&movice);
传地址到void Initializelist( List * plist)是不是把movice指向的结构的指针赋值为NULL???
----------------------------------------------
是将movice = NULL
------解决方案--------------------
list movice 结构体指针
list * movice list*所定义的变量是一个指向list类型的指针,而list又是一个指针
所以list * movice定义的就是一个指向指针的指针,多级指针
void Initializelist( List * plist)
{
* plist = NULL;/*对指针取了内容,plist为指针的指针,*plist为指针*/
}
------解决方案--------------------
1. list movice 和 list * movice 有什么区别
list movice == Node *movice;
list *movice == Node **movice;
2. 当在主函数时对list链表初始化用
Node Headlist;
Node *pMyHeadlist = NULL;//你的Initializelist(&movice)目的好像是这一步
pMyHeadlist = &Headlist;
int InitList(pMyHeadlist)
{
memset(pMyHeadlist-> item-> title,0,sizeof(pMyHeadlist-> item-> title));
pMyHeadlist-> item-> rating = 0;
pMyHeadlist-> next = NULL;
return 0;
}
链表只是一个节点指针,你初始化这个指针就可以了 ,哦 ,这是个头节点.