关于栈的初始化有一疑惑?

img


img


这里栈的初始化参数这么写有什么意义吗?为什么不直接用(*s)

这是因为要在函数里修改外部传入的s指针自身的地址,所以要用s指针的引用类型
函数中通过malloc分配了s指针的空间,如果只是用指针类型为参数,是无法实现修改外部传入的指针自身地址的,必须是指针的指针类型,或者指针的引用类型

需要先分配内存,因为你这个是一个指针。

&是c++的特性,表示引用
这里定义成*&s就是为了在指针改变地址之后,还能通过参数传回去,而无需return
否则要么必须将新地址return回去,要么s就得是个二级指针