#include <iostream>
void swap (int *a, int *b) {
int *k = a;
a = b;
b = k;
}
int main() {
int alpha = 5;
int beta = 34;
swap (alpha,beta);
std::cout << alpha << std::endl;
std::cout << beta << std::endl;
int *ab = new int();
*ab = 34;
int *cd = new int();
*cd =64;
swap(ab,cd);
std::cout << *ab << std::endl;
std::cout << *cd << std::endl;
}
第一个问题:我如何能够将值传递给指针作为传递参数的函数。将指针传递给函数?
第二个问题:它如何交换。它交换指针。但是当它出现时,alpha和beta的值不会保持相同。
第三个问题:为什么当我传递指针时函数不工作,但当我传递常量变量时工作。
第四个问题:函数void swap(int *a, int* b)
是int *a
和int *b
的引用?
你的'使用命名空间std;'搞乱了你。标准交换功能实际上是正确实施的。你的不是。 – chris 2014-11-08 16:48:15
'swap(&alpha,&beta);' – 2014-11-08 16:50:59
@chris实际上,在第一次调用中他意外地使用了'std :: swap',:)。 – 101010 2014-11-08 16:51:39