首页 > 解决方案 > *& vs & 将变量传递给函数

问题描述

我试图理解 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 中有什么,与&我学到的 (Pass by reference) 相比,在性能上有什么不同,或者它们是如何工作的,我应该使用什么?

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

标签: c++pointersreferenceswap

解决方案


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


推荐阅读