指向指针的指针

以下仅为个人理解,如有错误,清指出啊

指针赋值应该付给地址。

如:

int a=19;

int *p=&a;//指针p的地址就是&p,  p指向的地址就是p

1.int *p=&a. int**p = &p. int***的赋值, 必须是&(int**)

后面跟指针时,是将指针所表示的值作为地址赋值的。

	int ival = 1024;
         int *pi = &ival; // pi points to anint 指针p的地址就是&p,  p指向的地址就是p
         int **ppi = π // ppi points to apointer to int
         int *p = *ppi;//将*ppi的值作为地址存储到p。
        
         cout<<"*ppi="<<*ppi<<endl;
         cout<<"*p="<<*p<<endl;
 
         system("PAUSE");


2.P代表p指向的地址,*p代表p指向的地址里存储的值。依次类推,*(p),p存储一个地址address,而*p则是address地址所存储的值。

3.赋值:

Int**pi = &p;//输出&p和**pi,并不一样。赋值时是赋予的地址,输出时则是该地址存储的值。

 

reftoref::reftoref()
{
         int ival = 1024;
         int *pi = &ival; // pi points to anint 指针p的地址就是&p,  p指向的地址就是p
         int **ppi = π // ppi points to apointer to int
         int ***pppi =&ppi;
         int ****p = &pppi;
        
         cout<<"*ppi="<<*ppi<<endl;
         cout<<"pi="<<pi<<endl;
         cout<<"&ival="<<&ival<<endl;
         cout<<"&pi="<<&pi<<endl;
         cout<<"ppi="<<ppi<<endl;
         cout<<"***pppi="<<***pppi<<endl;
         cout<<"**pppi="<<**pppi<<endl;
         cout<<"*pppi="<<*pppi<<endl;
 
         cout<<"****p="<<****p<<endl;//1024,(***p存储1024的地址a,*(***p)就代表a地址里存储的值)
         cout<<"***p="<<***p<<endl;//1024所在的地址
         cout<<"**p="<<**p<<endl;//指向1024的指针的地址
         cout<<"*p="<<*p<<endl; //指向1024的指针的指针的地址
 
         system("PAUSE");
}

输出:

*ppi=0030FB80

pi=0030FB80

&ival=0030FB80

&pi=0030FB88

ppi=0030FB88

***pppi=1024

**pppi=0030FB80

*pppi=0030FB88

****p=1024

***p=0030FB80

**p=0030FB88

*p=0030FB8C

请按任意键继续. . .


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值