【发布时间】:2020-01-19 15:20:45
【问题描述】:
我试图理解 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;
}
【问题讨论】:
-
这能回答你的问题吗? Meaning of *& and **& in C++
-
这取决于你需要什么。
char&是对char的引用,而char*&是对char指针的引用。非常不同的东西。 -
@Yksisarvinen 我已经读过这篇文章,这对我来说有点高级,基本上我想了解为什么不直接使用
&。在什么情况下*&优于&。 -
@Phineas 你的类型是
char*,而不是char,所以这个类型的引用是char* &,而不是char &。没有“在什么情况下更好”。对于给定的类型,您使用给定的语法,仅此而已。
标签: c++ pointers reference swap