C++中参数传递的两种方式:传值与传址及它们的区别
生活随笔
收集整理的這篇文章主要介紹了
C++中参数传递的两种方式:传值与传址及它们的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#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 也要分配內(nèi)存空間,實(shí)參的值復(fù)制給形參
*/
void mySwap1(int a,int b){int temp;temp=a;a=b;b=temp;
}
/*
int * 類型作為形參--值傳遞:形參p1,p2 也要分配內(nèi)存空間,實(shí)參的值復(fù)制給形參(地址)
*/
void mySwap2(int *p1,int *p2){//改變形參指針的指向,不會(huì)影響到實(shí)參int *temp;temp=p1;p1=p2;p2=temp;}
/*
int * 類型作為形參--值傳遞:形參p1,p2 也要分配內(nèi)存空間,實(shí)參的值復(fù)制給形參(地址)
*/
void mySwap3(int *p1,int *p2){//改變形參指針指向的內(nèi)存空間值,也就改變了實(shí)參指針指向的內(nèi)存空間值int temp2;temp2=*p1;*p1=*p2;*p2=temp2;
}/*
引用類型作為形參--址傳遞:形參a,b是不分配內(nèi)存空間的,形參是實(shí)參的“別名”
*/
void mySwap4(int &a,int &b){int temp;temp=a;a=b;b=temp;
}
總結(jié)
以上是生活随笔為你收集整理的C++中参数传递的两种方式:传值与传址及它们的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: warning C4552: '' :
- 下一篇: C++基类与派生类的转换与多态性