VC++ 介紹值傳遞/指標傳遞/引用傳遞的作用
阿新 • • 發佈:2019-01-27
下面5個函式哪個能夠成功進行兩個數的交換?
分析下面5個函式,用於瞭解值傳遞/指標傳遞/引用傳遞的使用方法。
#include<iostream> using namespace std; void swap1(int p, int q); void swap2(int* p, int* q); void swap3(int* p, int* q); void swap4(int* p, int* q); void swap5(int& p, int& q); int main() { int a = 1, b = 2; //swap1(a, b); //swap3(&a,&b); //swap4(&a, &b); swap5(a, b); cout << a << " " << b << endl; // 使得dos介面不閃屏 int i; cin >> i; return 0; } void swap1(int p,int q) {//值傳遞 int temp; temp = p; p = q; q = temp; } void swap2(int* p,int* q) {//語法錯誤,空指標 /* int* temp; *temp = *p; *p = *q; *q = *temp;*/ } void swap3(int* p, int* q) {//指標傳遞-指標指向變化 int *temp; temp = p; p = q; q = temp; } void swap4(int* p,int* q) {//指標傳遞-指標指向的值變化 int temp; temp = *p; *p = *q; *q = temp; } void swap5(int &p, int &q) {//引用傳遞 int temp; temp = p; p = q; q = temp; }
swap1:值傳遞,a和b是全域性變數,不能實現a和b的交換
swap2:指標傳遞:記憶體洩漏
swap3:指標傳遞:不能實現兩數的交換,只是指標的變化
swap4:指標傳遞:可以實現兩數的交換,指標指向的內容發生了變化
swap5:引用傳遞:可以實現兩數的交換