标题:难以理解的指针变量
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-296274-1-1.html




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

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