p,q两个指针.

木梨moolee 2017-10-12 04:09:42
如果这样

p=q;

赋值以后 ,是不是p改变,q也会改变。
...全文
654 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Grove097 2017-10-13
  • 打赏
  • 举报
回复
int*p,*q; p=q; 将q的地址赋值给p, 如果p/q为同一地址,则不会改变; 如果P/Q为不同地址,则q不变,而p有可能变化;
赵4老师 2017-10-13
  • 打赏
  • 举报
回复
理解讨论之前请先学会如何观察! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程! 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! 不会单步Release版对应汇编?在你想单步Release版C/C++代码片断的前面临时加一句DebugBreak();重建所有,然后在IDE中运行。(一般人我不告诉他!) VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
棉猴 2017-10-12
  • 打赏
  • 举报
回复
1对p指向的数据进行赋值
	int *p, *q;
int m = 1;
q = &m;
p = q;
*p = 2;


2 对p本身的值进行赋值
	int *p, *q;
int m = 1;
q = &m;
p = q;
int n = 2;
p = &n;


开心秋水 2017-10-12
  • 打赏
  • 举报
回复
赋值以后,p和q是相等的,但如果改变p,q却不会变,反过来也是。
你把p和q都当成int类型就好懂了。
p和q的联系是,*p和*q是同一个玩意。如果*p变了,那么*q也就变了
HomerRo 2017-10-12
  • 打赏
  • 举报
回复
这个赋值就是p与q指向一个内存地址。当p改变时,q也会改变吗?有二个可能结果: 1、因为p与q指向同一个内存地址,当使用p指向的地址写数据,即改变p指向的地址内容时,显然,q指向的那个地址的内容 同时改变了,指向同一个内存地址嘛。 2、p指向的内存地址改变,即改变p指针地址数据。显然,q指向的内存地址是不变的,同时,p与q的地址值已经不同了,除非重新赋值一次。
sdghchj 2017-10-12
  • 打赏
  • 举报
回复
q肯定不变,至于p变不变得看它原来的值是什么
赵4老师 2017-10-12
  • 打赏
  • 举报
回复
如果p和q指向的内容在内存上有重叠,q也可能改变。
qq_40162781 2017-10-12
  • 打赏
  • 举报
回复
*p=3;那么*q等于3; 如果int *k=nullptr; p=k;那么q不会改变

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧