把變數的「地址」傳給函式
函式裡透過指標找到房子
就能直接改裡面的東西了
📌交換兩個數字,需要一個盒子
a
的值存到盒子b
的值放進 a
b
📌如果直接 a = b
,那麼 a
的值就消失了
#include <iostream>
using namespace std;
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a = 5, b = 10;
swap(&a, &b);
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
📌 引用變數位置
#include <iostream>
using namespace std;
void changeValue(int &x)
{
x = 2;
}
int main()
{
int a = 1;
changeValue(a);
cout << "a = " << a << endl;
return 0;
}
📌 傳入地址,並用 *
取值修改
#include <iostream>
using namespace std;
void changeValue(int *x)
{
*x = 2;
}
int main()
{
int a = 1;
changeValue(&a);
cout << "a = " << a << endl;
return 0;
}
函式參數除了傳值(by value)
還能使用指標傳址(by pointer)
這樣函式就可以直接操作原本的變數