形参指针指向的变化会影响实参指针指向吗
形参指针和实参指针到底是什么关系啊
看看GPT的回答:
形参指针和实参指针之间存在着一定的关系。在 C 或 C++ 中,函数的参数传递有两种方式:传值和传地址(指针)。
当使用指针作为函数参数时,可以通过指针对函数外部的变量进行操作。在函数中对指针的修改会影响到指针所指向的内存空间,从而也会影响到实参指针指向的内存空间。
但是需要注意的是,形参指针和实参指针是不同的指针变量,它们具有不同的内存地址,因此形参指针的修改不会影响实参指针的地址,只会影响它所指向的内存空间。如果在函数中修改形参指针的指向,那么只会影响形参指针本身,而不会影响实参指针。
下面是一个简单的例子,可以更好地理解形参指针和实参指针之间的关系:
#include <iostream>
using namespace std;
void func(int* p) {
*p = 10; // 修改指针指向的内存空间的值
p = NULL; // 修改指针本身的值
}
int main() {
int num = 5;
int* p = #
cout << "Before func(): " << p << endl; // 输出实参指针的值
func(p); // 调用函数
cout << "After func(): " << p << endl; // 输出实参指针的值
cout << "num: " << num << endl; // 输出num的值
return 0;
}
形参指针指向的变化会影响实参指针指向吗====不会的
函数内修改形参指针地址不会改变实参指针的地址。这就类似于函数内值参修改不会改变实参数值一样。要改变指针参数的地址,那么需要传递指针的指针类型,才能实现实参指针地址的修改
形参指针和实参指针到底是什么关系啊====类似于值参传递,将这个指针地址复制了一份,因此形参指针和值参指针完全是两个指针,只是指向同一个地址而已