gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:11:04 25 4
gpt4 key购买 nike

我试图理解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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com