c++ - *&vs&in将变量传递给函数

标签 c++ pointers reference swap

我试图理解C++中的引用和指针,但我偶然发现了这一点

#include<iostream> 
using namespace std; 

void swap(char * &str1, char * &str2) 
{ 
char *temp = str1; 
str1 = str2; 
str2 = temp; 
} 

int main() 
{ 
const char *str1 = "GEEKS"; 
const char *str2 = "FOR GEEKS"; 
swap(str1, str2); 
cout<<"str1 is "<<str1<<endl; 
cout<<"str2 is "<<str2<<endl; 
return 0; 
} 

什么是Swap函数中的*&,与我了解的&(通过引用传递)相比,性能上有什么不同,或者它们如何工作,我应该使用什么?
void swap(char &str1, char &str2) 
{ 
char temp = str1; 
str1 = str2; 
str2 = temp; 
} 

最佳答案

它是对指针的引用。这样,函数不仅可以访问指针指向的内容,还可以修改传入的指针本身(它可以更改传入的指针所指向的内容,因此它指向其他内容)。

关于c++ - *&vs&in将变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811472/

相关文章:

c++ - 重载运算符的返回值

c++ - 使用私有(private)嵌套类型的友元运算符函数仅在 MSVC 中失败

c++ - 用arm-linux-g++编译opencv失败(交叉编译)

c++ - QTableView并设置指针位置

c++ - 如果变量名不跟在 char* 后面,const char* 是否有效?

c++ - 非常量成员引用在 const 对象上是可变的吗?

javascript - 用 JS 引用对象窗口的元素 id

c++ - 是否有合并数值范围的有效算法?

c++ - 删除对本地创建的指针的引用

ios objective-c 常量 CGFloat *