C++基础(七)--二级指针

  1.     指针是指针变量的简称,也是变量,有变量就有地址
  2.     指针用于存放普通变量的地址
  3.     二级指针用来存放指针变量的地址
  4.     声明二级指针的语法:数据类型** 指针名
    例:
    int _tmain(int argc, _TCHAR* argv[])
    {
    	//指针是指针变量的简称,也是变量,有变量就有地址
    	//指针用于存放普通变量的地址
    	//二级指针用来存放指针变量的地址
    	//声明二级指针的语法:数据类型** 指针名
    	//使用指针有两个目的(1)传地址(2)存放动态分配的内存地址
    	//在函数中,如果传递普通变量的地址,形参用指针;传递指针的地址的地址,形参用二级指针
    	//为什么要传地址?把普通变量的地址传入函数中后,可以在函数中修改变量的值;把指针的地址传入函数后,可以在函数中修改指针的值
    
    	int ii = 8;			cout << "ii=" << ii << ",ii的地址是:" << &ii << endl;
    	int* pii = &ii;		cout << "pii=" << pii << ", pii的地址是:" << &pii<<",*pii="<<*pii << endl;
    	//二级指针,就是指针的指针
    	int* *ppii = &pii;	cout << "ppii=" << ppii << ", ppii的地址是:" << &ppii<<",*ppii=" <<*ppii<< endl;
    
    	cout << "**ppii=" << **ppii << endl;//对ppii解两次引用
    
    	system("pause");
    	return 0;
    }
    

  5.     使用指针有两个目的(1)传地址(2)存放动态分配的内存地址
  6.     在函数中,如果传递普通变量的地址,形参用指针;传递指针的地址的地址,形参用二级指针
  7.     为什么要传地址?把普通变量的地址传入函数中后,可以在函数中修改变量的值;把指针的地址传入函数后,可以在函数中修改指针的值
    应用案例,如果业务要求把分配内存的代码与声明指针的代码分开,代码如下
    /如果业务要求把分配内存的代码与声明指针的代码分开
    //此函数功能为分配内存,然后把内存的地址赋给p,相当于要在函数中修改指针p的值,需要把指针p的地址传给函数
    void func(int** pp)//生声明一个二级指针用来存放指针的地址
    {
    	*pp = new int(3);//对pp解引用之后就是p,給指针p分配内存
    	cout << "pp=" << pp << ",*pp=" << *pp << endl;
    }
    
    //调用
    //如果业务要求把分配内存的代码与声明指针的代码分开,就需要把指针的地址传给另一个函数
    	int* p1 = NULL;//声明一个指针(指针要初始化)
    	func(&p1);//在函数中分配内存,把p1的地址传进去

    总结:如果需要在函数中修改指针的地址,就需要传递指针得地址,就需要用到二级指针

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值