浅谈二级指针的使用(C/C++)

1 //二级指针.cpp
 2 #include <iostream>
 3 using namespace std;
 4 
 5 void change_val(int **p)  
 6 {  
 7     static int new_val[3] = {4, 5, 6}; // [2]  
 8     *p = new_val;  
 9 }  
10 
11 int main()
12 {    
13     int i;
14     int val[3] = {1, 2, 3};  
15     int *p = val;              // [1]  
16     
17     for (i = 0; i < 3; i++,p++)
18     {
19         cout<<"*p:"<<*p<<endl;
20     }
21     
22     change_val(&p); 
23     cout<<"----"<<endl;
24     for (i = 0; i < 3; i++,p++)
25     {
26         cout<<"*p:"<<*p<<endl;
27     }
28 }

第一次编写段二级指针代码的时候,开始是定义数组为字符型,由于第一次没有一用循环输出,只是输出了首地址的数,

而首地址原来我是用 1,2为两个数组的首地址,结果输出的都是一张笑脸。

我当时误以为二级指针没有起到改变地址的作用,后来仔细一看才发现两张笑脸颜色是有区别的。

后来就改为了数字数组,这样容易区分。而且输出全部的数组内容。

值得一提的是 子函数里面的数组要定义为静态的,否则函数执行出了子函数,就会释放动态数组。

如图:

浅谈二级指针的使用(C/C++)

小结:

使用二级指针,也就是指针的指针时,其中一级指针是存放的是一个地址,二级指针存放的是一级指针的地址。相信大家看程序代码就能看懂二级指针的用法了。


by : null

2013年7月13日10:33:45

原文链接: https://www.cnblogs.com/nulln/p/3187697.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/95664

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午3:12
下一篇 2023年2月10日 上午3:13

相关推荐