#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