函數的多種傳參方式與區別
1、值傳遞,形參不會修飾實參
2、地址傳遞,形參會修飾實參
3、引用傳遞,形參會修飾實參
#include<iostream>
#include<string>
using namespace std;
//1、引用:給變量起別名
//語法: 數據類型 &別名 = 原名
//引用的注意事項
//1、引用必須要初始化 int &b = a;
//2、引用一旦初始化後,就不可以更改了
void mySwap01(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
void mySwap02(int * a, int * b) //引用起別名
{
int temp = *a;
* a = *b;
* b = temp;
}
void mySwap03(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10;
//創建引用
int b = 20;
mySwap01(a, b); //值傳遞,形參不會修飾實參
cout << "a=" << a << ", b:" << b << endl;
mySwap02(&a, &b); //地址傳遞,形參會修飾實參
cout << "a=" << a << ", b:" << b << endl;
mySwap03(a, b); //引用傳遞,形參會修飾實參
cout << "a=" << a << ", b:" << b << endl;
}
//帶局部的都放在棧區