大佬教程收集整理的这篇文章主要介绍了c – 这项任务后它的内存地址不一样吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int *p = NULL,c,*q; c=10; p = &c; q = p; printf ("%d and %d ",&p,&q );
输出:
2686788 and 2686780
我的问题是:据我所知,我认为内存地址是相同的,因为我已将p分配给q.可能是我错了.
q = p;
p和q现在都指向相同的内存位置.至于插图,这在以下ASCII艺术中显示:
p +-------+ | | c 0x200 | 0x100 +---------+ +-------+ | | +-> | | +-------+ | 10 | q +-> | | +-------+ | +-------+ | | | 0x100 0x300 | 0x100 +---------+ | | +-------+ p = q but &p != &q
注意:要打印指针数据类型,请在printf中使用%p说明符.
printf ("%p and %p ",(void *)&p,(void *)&q );
以上是大佬教程为你收集整理的c – 这项任务后它的内存地址不一样吗?全部内容,希望文章能够帮你解决c – 这项任务后它的内存地址不一样吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。