最近在學習c++,今天在看書時,敲了幾行代碼:
#include <iostream>void swap(const int &a, int &b);
int main()
{
using namespace std;
int x = 1, y =2;
swap(x, y);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
void swap(const int &a, int &b)
{
int temp;
temp = a;
//a = b;
b = temp;
//return 0;
}
運行結果是:x = 2
y = 1
很納悶,爲什麼會這樣,明明已經對x用const進行了限定,怎麼還是變化了,看了半天也沒發現什麼,吃過晚飯,和女朋友一起討論這件事,在她電腦上把這個程序敲了上去,兩個人一起看了會,還是沒有什麼發現,我突然靈機一動,把swap全部改成大寫的Swap,運行後,x = 1 y = 1。原來這個swap是庫函數,但是怎麼樣用自己的swap了,把using namespace std去掉,直接用std::cout, std::endl就行了。