| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:已解决:const int *p = NULL 其中 &p 和p区别?
只看楼主 加入收藏
tiyager
Rank: 2
等 级:论坛游民
帖 子:14
专家分:25
注 册:2012-7-16
收藏
 问题点数:0 回复次数:4 
已解决:const int *p = NULL 其中 &p 和p区别?
程序代码:
#include <stdio.h>

int main () {
    const int* p = NULL;
    printf("%p_%p\n",p,&p);
    return 0;
}
运行结果:00000000_0022FF74
他们分别代表什么呢?

[ 本帖最后由 tiyager 于 2012-7-17 14:13 编辑 ]
2012-07-17 10:56
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
你让p = NULL,你说打印p的值为多少?

&p是p这个指针变量的地址。
收到的鲜花
  • tiyager2012-07-17 14:15 送鲜花  1朵   附言:我很赞同
2012-07-17 12:36
back4663
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2012-7-3
收藏
得分:0 
p已经被你赋值就为0;
&p是该值的地址
2012-07-17 13:39
westfall999
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:40
专家分:101
注 册:2012-7-22
收藏
得分:0 
NULL的原型为:
#define (void*)0x0000 NULL

p是一个指针,对p=NULL等价于p=0x0000;只不过0x0000这个内存地址已被定义为空指针,表示不指向任何地址,对p=NULL就是将被初始化为空指针。
&表示取变量在内存中的实际地址值(由编译器分配的内存地址),理所当然&p表示取变量p的地址,虽然它是一个指针变量,但也不例外。&p由于各人的机器环境不同,得出的值多数情况下不会相同。
2012-07-22 22:06
无聊恢恢
Rank: 2
等 级:论坛游民
帖 子:21
专家分:20
注 册:2012-7-19
收藏
得分:0 
p = NULL 输出自然是00000000
&p为p的地址
2012-07-23 08:09
快速回复:已解决:const int *p = NULL 其中 &p 和p区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029463 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved