新手对指针的理解 . . 需要一个权威的鉴定(已经得到过肯定, 但不是权威)
typedef struct{
int integer;
int *point;
}abc;
void init(abc **e) /*要用二级指针才能存住传入的指针的地址*/
{
int b=2;
*e=(abc*)malloc(sizeof(abc));/*因为这个函数是要给形参一个新的地址 改的是指针实参指向的地址*/
(*e)->point=&b; /*所以要用二级指针来存指针实参的地址*/
}
void function(abc *c) /*这里修改的是传入的指针所存的地址*/
{
int d=5;
c->point=&d;
}
main()
{
abc *a; /*新定义的指针都指向一个地址*/
init(&a) ; /*把指针的地址传入*/
function(a); /*把指针a里的地址传入*/
printf("%d",*a->point);
getch();
}
上面注释里说的 都对么~?
另外还一个问题
void init(abc **e)
{
int b=2;
*e=(abc*)malloc(sizeof(abc));
(*e)->point=&b;
}
为啥e前面要加一个星号?~
*e=(abc*)malloc(sizeof(abc));
(*e)->point=&b;