请问个关于全局指针的问题,求教
class Book
{
public:
int num;
float price;
Book *next;
};
Book *head = NULL;//这里定义的指针
Book *creat()
{
............//创建结点
}
void show(Book *head)
{
while(head)
{
cout<<head->num<<"\t"<<head->price<<endl;
head = head->next;//在这里传入函数后,head指针以经后移,其地址已经改变
}
}
int main()
{
head = creat();//创建多个结点后,返回头结点
show(head);//调用完结束后,为什么head指针又指向头结点了,这个不是按地址传递吗,其地址应该移到最后的结点
}
跟踪看了,就是不明白,这里返回主调函数的时候为什么指针自动变回头指针了,在调用show()函数时不是已经改变地址了吗,这是按地址传递的啊.
是不是全局区和栈区的关系,具体怎么实现的,请大哥们给讲讲,多谢了,本人新手