#include<iostream>
using namespace std;
void mySwap(int *p1,int *p2);
int main(){
int a=12;
int b=44;
int *pa=&a;
int *pb=&b;
if(a<b){
mySwap1(a,b);
//mySwap2(pa,pb);
//mySwap3(pa,pb);
//mySwap4(a,b);
}
return 0;
}
/*
int類型作爲形參--值傳遞:形參a ,b 也要分配內存空間,實參的值複製給形參
*/
void mySwap1(int a,int b){
int temp;
temp=a;
a=b;
b=temp;
}
/*
int * 類型作爲形參--值傳遞:形參p1,p2 也要分配內存空間,實參的值複製給形參(地址)
*/
void mySwap2(int *p1,int *p2){
//改變形參指針的指向,不會影響到實參
int *temp;
temp=p1;
p1=p2;
p2=temp;
}
/*
int * 類型作爲形參--值傳遞:形參p1,p2 也要分配內存空間,實參的值複製給形參(地址)
*/
void mySwap3(int *p1,int *p2){
//改變形參指針指向的內存空間值,也就改變了實參指針指向的內存空間值
int temp2;
temp2=*p1;
*p1=*p2;
*p2=temp2;
}
/*
引用類型作爲形參--址傳遞:形參a,b是不分配內存空間的,形參是實參的“別名”
*/
void mySwap4(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
C++中參數傳遞的兩種方式:傳值與傳址及它們的區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.