C

[剑指Offer]函数参数指针的指针的理解

指针

Posted by JinFei on March 4, 2020

指针的指针的

#include <iostream>

using namespace std;

void funTest1(char* p){
    p++;    // 形参 p 是 实参的副本, 形参p的改变并不会改变实参的指向
}

void funTest2(char** p){
    (*p)++; // 遍历str,可以使用指针的指针,通过复制指针的指针  p即为r的副本,*p即为实参q的值,然后q的值进行累加,即可实现操作
}

void funTest3(char** p){
    (*p)++;
}

int main()
{
    char array[6] = {'a', 'b', 'c', 'd', 'e'};
    char* p = array;
    funTest1(p);
    cout << *p << endl;
    
    char array2[6] = {'a', 'b', 'c', 'd', 'e'};
    char* q = array2;
    funTest2(&q); // 相当于 char **r = q; funTest2(r);
    cout << *q << endl;

    char array3[6] = {'a', 'b', 'c', 'd', 'e'};
    char* s = array2;
    char** r =&s;
    funTest3(r);
    cout << *s << endl;

    return 0;
}