c++ - *& 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;
}
解决方案
它是对指针的引用。这样,函数不仅可以访问指针指向的内容,还可以修改传入的指针本身(它可以更改传入的指针指向的内容,因此它指向其他东西)。
推荐阅读
- android - 求一个简单的Android例子连接Spring websocket(使用STOMP和sockjs)
- html - 如何排除 Rvest 中的部分节点?筛选
- mysql - 在对 Azure SQL 数据库的数千条记录执行 upsert 时,使用 sequelize 改进缓慢的性能
- angular - 我可以让 Angular 5 和 Angular 7 的项目在同一台机器上工作和开发吗
- php - XML 到数组跳过属性值
- node.js - 'bluebird' 不在 npm 注册表中
- hibernate - Spring JPA 删除 @OneToOne 关系
- c# - VS2015 在添加新的实体数据模型时抛出异常
- pact - 如何在 Pact 提供者验证期间修改 POST 中的请求正文?
- javascript - 无法运行,但它编译得很好 Angular 项目