C++中参数传递的两种方式:传值与传址及它们的区别

来源:互联网 发布:淘宝上找货源 编辑:程序博客网 时间:2024/05/17 15:40

#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;}



本文转自:http://m.blog.csdn.net/cxc19890214/article/details/44617685
阅读全文
0 0
原创粉丝点击