1. C++引用方式传参
引用相当于是外部变量的别名,实际操作的就是该变量,即在函数内对该变量进行修改的话,在外部该变量也会相应的被修改。
void ChangRef(int &ref) {
ref++;
cout << "引用内修改后的值为:" << ref << endl;
}
2.C++传值方式传参数
实际上是复制了一个外部变量的副本进入函数中,在函数内操作的为该副本,对该变量的修改并不会实际修改函数外的该变量。
void ChangRef(int ref) {
ref++;
cout << "引用内修改后的值为:" << ref << endl;
}
3. 指针方式传参数
如果传值方式传入的是指针,那么修改指针,函数执行完毕之后作为参数传入的指针指向的内容依旧不变,但是如果在函数内修改的是该指针指向的值,那么在函数外该指针指向的值会发生变化。以指针为参数进行传递值,也是在函数的内部复制了一个指针的副本,所以在内部修改指针即是修改该指针的副本,不会影响外部的指针,但是两个指针指向同一个内存空间,在函数内部修改指针指向的值会影响到函数外部指针指向的同一块内容。
int *ptr = &Ref;
void ChangePtr(int* ptr){
ptr++; //修改地址
cout << "函数内修改后的指针指向:" << ptr << endl;
}
ChangePtr(ptr);