首页 > 编程语言 > 详细

关于C++中指针,双指针的用途

时间:2021-07-12 22:45:08      阅读:23      评论:0      收藏:0      [点我收藏+]

翻了大半天的墙,论坛找一圈,勉勉强强对这个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++中指针,双指针的用途

原文:https://www.cnblogs.com/chuanshi10247/p/15004168.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!