链表中结构指针的指针
关于结构指针
struct Node *ps定义一个Node类型的结构指针。
注意,此时并没有指向Node的某个结构必须
malloc分配结构空间,并返回结构地址,给ps这样
ps才能有类似的ps->next操作
想要在函数中改变某个指针的指向的时候
通常是,函数中malloc返回给指针的情况
显然,如果我们想通过函数改变某个变量的值,那么我们可以传递这个值的指针给函数。让这个指针指向另外一个值
同样地,如果我们想要改变某个指针,那么就要传递指针的指针给函数
1 | typedef struct Node *List; |
想要不改变指针在main()中的指向
直接传递指针就好啦,不传递指针的指针就不改变原来的指向哦
1 |
|
1 | faye |
以上两点总结
传给函数指针只能改变它的值,不能改变它的指向。
重点,这是因为定义函数的参数是局部变量,调用函数时()里的值,只是赋值操作。注意,只是赋值
本质都是传值,只不过值,可以是指针。而且传给函数的,都可以理解为是原值的一个副本。既然是副本,那就可以理解了,改变副本是无法改变原值的。
看看,这里定义了两个指针。p和str。其中p 指向 (malloc)分配的内存,str 还指向 NULL。
1 | void GetMemory( char*p ) |
