C语言结构体问题

structA{inta;A*next};A*p=newA,*q=newA;p->a=1;p->next=NULL;那么要是q=p;这个语句,是吧P指向的内存单元的值复制... struct A
{
int a;
A *next
};

A *p=new A,*q=new A;
p->a=1;
p->next=NULL;
那么要是
q=p;
这个语句,是吧P指向的内存单元的值复制到q所指向的内存单元,还是说指针q将会指向p所指向的内存单元?
展开
 我来答
syimyuzya
2011-02-12 · TA获得超过224个赞
知道答主
回答量:23
采纳率:100%
帮助的人:34.9万
展开全部
「指针q将会指向p所指向的内存单元」正确。
指针赋值只改变它指向的地址,不会改变别的。

另外提醒一下:最好不要给q赋初值,不然就需要在「q=p;」之前要先用「delete q」把q原来指的那个A实例的空间释放掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdlanyu
2011-02-12 · TA获得超过550个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:519万
展开全部
指针q将会指向p所指向的内存单元
赋值操作,都是赋值类型的本身。也就是说都是复制本身的内存
*q=*p;这才是复制结构体
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_fmlyht
2011-02-12 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1819万
展开全部
明显是后者
指针q将会指向p所指向的内存单元
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-02-12
展开全部
q=p;
是指针q将会指向p所指向的内存单元
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友38c8e98
2011-02-12 · TA获得超过2657个赞
知道小有建树答主
回答量:1131
采纳率:0%
帮助的人:574万
展开全部
q=p
指针q指向 p所指向的对象
q、p指向同一块内存了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式