形参指针与实参指针的关系

形参指针指向的变化会影响实参指针指向吗
形参指针和实参指针到底是什么关系啊

看看GPT的回答:
形参指针和实参指针之间存在着一定的关系。在 C 或 C++ 中,函数的参数传递有两种方式:传值和传地址(指针)。

当使用指针作为函数参数时,可以通过指针对函数外部的变量进行操作。在函数中对指针的修改会影响到指针所指向的内存空间,从而也会影响到实参指针指向的内存空间。

但是需要注意的是,形参指针和实参指针是不同的指针变量,它们具有不同的内存地址,因此形参指针的修改不会影响实参指针的地址,只会影响它所指向的内存空间。如果在函数中修改形参指针的指向,那么只会影响形参指针本身,而不会影响实参指针。

下面是一个简单的例子,可以更好地理解形参指针和实参指针之间的关系:

#include <iostream>
using namespace std;

void func(int* p) {
    *p = 10;    // 修改指针指向的内存空间的值
    p = NULL;   // 修改指针本身的值
}

int main() {
    int num = 5;
    int* p = &num;

    cout << "Before func(): " << p << endl;    // 输出实参指针的值

    func(p);    // 调用函数

    cout << "After func(): " << p << endl;     // 输出实参指针的值
    cout << "num: " << num << endl;            // 输出num的值

    return 0;
}

形参指针指向的变化会影响实参指针指向吗====不会的
函数内修改形参指针地址不会改变实参指针的地址。这就类似于函数内值参修改不会改变实参数值一样。要改变指针参数的地址,那么需要传递指针的指针类型,才能实现实参指针地址的修改
形参指针和实参指针到底是什么关系啊====类似于值参传递,将这个指针地址复制了一份,因此形参指针和值参指针完全是两个指针,只是指向同一个地址而已