注册 登录
编程论坛 C++教室

新手请教c++问题

lz66608 发布于 2012-10-09 09:26, 321 次点击
#include <iostream>
using namespace std;
class book
{
public:
    int id;
    float doll;
    book *next;
};
//book*head=NULL;
void CreateTable(book*);
void main()
{
    book *head=NULL;
    CreateTable(head);
    cout<<head;
    delete head;
}
void CreateTable(book*head)
{
   book *p;
   p=new book;
   p->id=1;
   p->doll=10.0f;
   head=p;
   cout<<head<<endl;
   p=NULL;
   return;
}
请问在这段代码中,怎么主程序中的head在调用函数CreateTable后指向的地址没有改变
2 回复
#2
小糊涂神c302012-10-09 09:40
传递的是地址的副本 对副本指针的指向不影响实参的指针指向,你可以返回新申请的空间的地址,这样才可以操作!
#3
lz666082012-10-09 09:48
谢了,我就是想搞明白怎么回事,返回指针来接收是没问题的,我再自己想想吧
1