<分区>
我正在处理一个使用指针交换两个变量值的函数,我发现通过声明 using namespace std
,我不需要将变量的地址作为参数传递让它工作。传递 int 本身将使代码工作。
我怀疑这与 std 处理参数的方式有关,但我找不到答案。如果有人能指出正确的方向,我将不胜感激。
1) 不使用 using namespace std
#include<iostream>
void swap(int* X, int* Y);
int main() {
int a, b;
std::cin >> a;
std::cin >> b;
std::cout << a << "," << b << std::endl;
swap(&a, &b);
std::cout << a << "," << b << std::endl;
}
void swap(int* X, int* Y) {
int temp = *X;
*X = *Y;
*Y = temp;
}
2) using namespace std
#include<iostream>
**using namespace std;**
void swap(int* X, int* Y);
int main() {
int a, b;
std::cin >> a;
std::cin >> b;
std::cout << a << "," << b << std::endl;
swap(a, b);
std::cout << a << "," << b << std::endl;
}
void swap(int* X, int* Y) {
int temp = *X;
*X = *Y;
*Y = temp;
}