c++ - 无效交换(int *a,int *b);为什么交换(a,b)有效?
问题描述
swap
我的函数原型是void swap(int *a, int *b)
;为什么当我调用swap(a, b)
wherea
和b
are 整数时会调用它?
完整程序
#include <iostream>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
using namespace std;
int a = 9, b = 8;
cout << "before swap:" << endl;
cout << a << '\t' << b << endl;
swap(a, b);
cout << "after swap:" << endl;
cout << a << '\t' << b << endl;
cin.get();
return 0;
}
观察到的行为
before swap: 9 8 after swap: 8 9
我知道应该是swap(&a,&b)
调用函数swap
。为什么它仍然有效?
解决方案
推荐阅读
- python - 了解 tf.nn.depthwise_conv2d
- html - 阻止 Ionic App iframe 中的浏览器选择器 - 阻止打开外部浏览器
- javascript - 检测是否
- javascript - 单击提交按钮时如何使用JavaScript将li元素添加到ul
- c# - Correct way to use wirunsql & WiSumInf to create multiple installer
- javascript - 使用 JavaScript 将链接标签包裹在文本周围
- javascript - loop through an array of html elements jsx
- bigcommerce - 抱歉,无法处理您的请求,因为它在应用安装时包含无效的安全令牌
- function - PowerShell:将类与 ForEach 一起使用
- asp.net-core - asp.net 核心的 Azure AD 身份验证问题