关于C++中指针,双指针的用途
2021/7/12 22:06:34
本文主要是介绍关于C++中指针,双指针的用途,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
翻了大半天的墙,论坛找一圈,勉勉强强对这个pointer以及pointer to pointer有了一点点的了解,反正我就是这么理解的,权当是对的了
哎,组里都不在,好无聊啊,想喝酒!
pointer的用途
其实就是你给一个变量一个数,一串字符巴拉巴拉的,存这个变量里了,你用的时候是直接调用的,对吧?看不懂直接回去重新学去吧!
但是呢,其实你用变量的时候,变量会跑回家里,把这个值取出来让你用
pointer的意义就在于,你调用的时候,不是找人变量拿了,你直接怼人家里去自己取去了。
pointers to pointers的用途
问题来了,你可以自己写两个function试一下,在一号function里改变了变量,然后在二号function里去用,看数会不会变,肯定不会变,这就是局部变量。
pointer to pointer 的用处就是可以在函数之间可以改变变量,原理是啥,我不知道。
下面po上来一个例子,自己去试试就知道了:
#include <iostream> #include "ss.h" using namespace std; int main(){ // Variable int a = 1; int b = 2; int c = 3; // Pointers int * d = &a; int * e = &b; int * f = &c; // Pointer To Pointer int ** pp1 = &d; int ** pp2 = &e; int ** pp3 = &f; // Begin! change_v(d, b); print_v_p(a,b,c,d,e,f); return 0; }
// // Created by yms on 2021/7/12. // using namespace std; #ifndef TEST_SS_H #define TEST_SS_H int print_v_p(int v1, int v2, int v3, int *p1, int *p2, int * p3){ cout << v1 << endl; cout << v2 << endl; cout << v3 << endl; cout << "//////////\n"; cout << *p1 << endl; cout << *p2 << endl; cout << *p3 << endl; cout << "//////////\n"; cout << p1 << endl; cout << p2 << endl; cout << p3 << endl; return 1; } int print_v_pp(int v1, int v2, int v3, int ** pp1, int ** pp2, int ** pp3){ cout << v1 <<"\t" << v2 << "\t" << v3 << endl; cout << **pp1 <<endl; cout << **pp2 <<endl; cout << **pp3 <<endl; return 0; } void change_v(int * t, int x){ *t = x; } #endif //TEST_SS_H
这篇关于关于C++中指针,双指针的用途的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19WebSocket入门指南:轻松搭建实时通信应用
- 2024-11-19Nacos安装资料详解:新手入门教程
- 2024-11-19Nacos安装资料:新手入门教程
- 2024-11-19升级 Gerrit 时有哪些注意事项?-icode9专业技术文章分享
- 2024-11-19pnpm是什么?-icode9专业技术文章分享
- 2024-11-19将文件或目录压缩并保留到指定的固定目录怎么实现?-icode9专业技术文章分享
- 2024-11-19使用 tar 命令压缩文件并且过滤掉某些特定的目录?-icode9专业技术文章分享
- 2024-11-18Nacos安装入门教程
- 2024-11-18Nacos安装入门:轻松掌握Nacos服务注册与配置管理
- 2024-11-18Nacos配置中心入门:新手必读教程