| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:为什么显示指针和指针的地址是一样的呢?
只看楼主 加入收藏
lingyunhappy
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2010-3-8
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:2 
为什么显示指针和指针的地址是一样的呢?
为了了解指针指向内容和指针的地址 我自己编了一个程序
#include<iostream>
using namespace std;
int main(){
    int a=2;
    int *p1=&a;
    int *p2=p1;
    cout<<"*p1= "<<*p1<<endl;
    cout<<"p1= "<<p1<<endl;
    cout<<"&(*p1)= "<<&(*p1)<<endl;
    cout<<"*p2= "<<*p2<<endl;
    cout<<"p2= "<<p2<<endl;
    system ("pause");
    return 0;
}
显示的结果是:
*p1= 2
p1=0X22ff74
&(*p1)= 0X22ff74
*p2= 2
p2= 0X22ff74
我就不明白了 上面的都显示正确 指针p2指向指针p1 指针p1指向a的内容
为什么指针p1的地址和p2的地址显示的是一样的呢?

[ 本帖最后由 lingyunhappy 于 2010-4-3 12:42 编辑 ]
搜索更多相关主题的帖子: 指针 地址 
2010-04-03 12:41
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:5 
cout <<"&p1="<<&p1<<endl;
cout <<"&p2="<<&p2<<endl;
cout <<"&a="<<&a<<endl;

加到你程序里去吧 再看看!
2010-04-03 13:22
yyblackyy
Rank: 6Rank: 6
等 级:侠之大者
帖 子:98
专家分:457
注 册:2010-3-31
收藏
得分:5 
#include<iostream>
using namespace std;
int main(){
    int a=2;              //定义变量 a
    int *p1=&a;            //把变量a的地址给p1
    int *p2=p1;             //把p1的值给p2  也就是说把a 的地址也给p2 p2,p1 指向同一个地址
    cout<<"*p1= "<<*p1<<endl;        //输出 *p的值 2
    cout<<"p1= "<<p1<<endl;           //输出p1 的值也就是a的地址
    cout<<"&(*p1)= "<<&(*p1)<<endl;   //&(*p1)表达式等于  p1 输出a的地址
    cout<<"*p2= "<<*p2<<endl;          //*p 输出p2指向对象的值 也就是a 2
    cout<<"p2= "<<p2<<endl;            //输出p2的值 p2=p1=&a 输出a的地址
    system ("pause");
    return 0;
}
//*****************************
楼主的话有问题:“我就不明白了 上面的都显示正确 指针p2指向指针p1 指针p1指向a的内容
为什么指针p1的地址和p2的地址显示的是一样的呢?”p2不指向p1 p2 指向a的地址
如果楼主要p2 指向p1 要声明 int **p2=&p1;
2010-04-03 13:50
快速回复:为什么显示指针和指针的地址是一样的呢?
数据加载中...
 
   



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

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