在 C/C++ 语言中实参和形参之间的数据传输是单向的“值传递”方式,也就是实参可以影响形参,而形参不能影响实参。
指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值
例子如下:
- 当指针作为形参时,我们仅仅是用于改变指针所指向变量(实参)的值时,这是可以改变的。
int a = 3;
int *p = &a;
void func1(int* val){
*val = 10;
}
int main(){
cout<<*p<<endl; //输出是3;
func1(p);
cout<<*p<<endl; //输出是10;
}
- 但是要明确的是,当对指针本身进行操作时,其与普通的形参是一样的,没有任何特殊之处。
就是指针内存单元存放的的其指向地址的值。
int a = 3;
int b = 9;
int