首页
社区
课程
招聘
[旧帖] [求助][求助]简单的c++求助 0.00雪花
发表于: 2011-11-15 13:04 1344

[旧帖] [求助][求助]简单的c++求助 0.00雪花

2011-11-15 13:04
1344
#include<iostream>
using namespace std;

int main()
{const int st =8;
const int  *p = &st;
const int **t = &p;
cout<<t<<endl;
cout<<*t<<endl;
cout<<**t<<endl;
return 0 ;
}
问题:谁能解释下t,*t,**t分别指向哪些东西

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 527
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
t是一个二级指针 t指向p *t指向st **t代表了st的值8
2011-11-15 13:22
0
雪    币: 166
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
首先你要明确一个指针有两个属性,一个是指针自身的地址,一个是指针指向的内容
int st=8, 假设st的地址(系统分配)为4000 0001H,st的内容为0000 0008H(8要转化为16进制)
int *p=&st,假设指针p的地址(系统分配)为5000 0001H,指针p的内容为4000 0001H
int **t=&p,假设指针t的地址(系统分配)为6000 0001H,指针t的内容为5000 0001H
有了上面的假设,下面请看cout输出的结果
cout<<t;输出的是指针t的地址,即6000 0001H
cout<<*t;输出的是指针t指向的内容,即5000 0001H
cout<<**t;输出的是指针p指向的内容,即4000 0001H
说明:这是个数学表达式,不是C++的语法。**t=*(*t)=*(p)=*p=st
2011-11-15 15:43
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢你的回答,为什么cout<<&p<<endl;和cout<<**t<<endl;数值不一样?
2011-11-15 19:53
0
游客
登录 | 注册 方可回帖
返回
//