**与&并将变量传递给函数

问题描述 投票:1回答:4

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

[交换]函数中的*&是什么,与我所学的&(通过引用传递)相比,性能上有什么不同,或者它们如何工作,我应该使用什么?

void swap(char &str1, char &str2) 
{ 
char temp = str1; 
str1 = str2; 
str2 = temp; 
} 
c++ pointers reference swap
4个回答
2
投票

是对指针的引用。这样,该函数不仅可以访问指针指向


2
投票

可以在声明中引用任何类型。


1
投票

将引用传递给指针非常类似于将引用传递给任何其他类型的变量。因此,在函数中:


0
投票
如果将对整数的引用传递给交换函数,您将像这样将一个变量的数据复制到另一个变量:
© www.soinside.com 2019 - 2024. All rights reserved.