| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:难以理解的指针变量
只看楼主 加入收藏
xiaoyu666
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-1-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
难以理解的指针变量
#include "iostream.h"
int main()
{
    int i=3;
    int *iptr=&i;
    int **iptrptr=&iptr;
    cout<<"Address of Var i="<<iptr<<endl;
    cout<<"Data of Var i="<<*iptr<<endl;
    cout<<"Address of pointer iptr="<<iptrptr<<endl;
    cout<<"Address of Var i="<<*iptrptr<<endl;
    cout<<**iptrptr;
    *iptr=2+*iptr;
    cout<<"Data of Var i="<<*iptr<<endl;
    return 0;
}
运行结果:
Address of Var i=0x0012FF7C
Data of Var i=3
Address of pointer iptr=0x0012FF78
Address of Var i=0x0012FF7C
3Data of Var i=5
Press any key to continue
搜索更多相关主题的帖子: 指针 变量 
2010-01-22 18:52
xiaoyu666
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-1-22
收藏
得分:0 
iptr表示i的内存地址.,*iptr表示i,这个还好理解,
后面的iptrptr,*iptrptr,**iptrptr分别表示什么呢?怎么理解?
谢谢大家!
2010-01-22 18:54
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
这个理解起来不容易.要细细体会,如果画一张图的话,要好理解些.但你可以这样理解:
iptrptr是指向一个指针的指针,
    int **iptrptr=&iptr;这一句就是将,指向i的指针的地址赋给了它,这实际上就是iptrptr中存放的是iptr的地址,而iptr存放的是i的地址.
*iptrptr是指针(此处是iptrptr指向的指针,即指向i指针),
    与iptr指向的地址是一样的.
**iptrptr是*iptrptr所指向地址的值(即i的值),
    它与*iptr含义就一样了.

[ 本帖最后由 cnfarer 于 2010-1-23 14:57 编辑 ]

★★★★★为人民服务★★★★★
2010-01-23 14:50
sirtang
Rank: 4
等 级:业余侠客
帖 子:51
专家分:263
注 册:2010-1-17
收藏
得分:10 
楼上正解,楼主好生体会
2010-01-23 22:55
快速回复:难以理解的指针变量
数据加载中...
 
   



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

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