c++中的按值传递和地址传递的区别?细致点儿的~!

这是个按值传递的样本:#include"iostream.h"voidswap(int,int);voidmain(){inta=3,b=4;cout<<"a="<<a<... 这是个按值传递的样本:
#include "iostream.h"

void swap(int,int);

void main()
{

int a=3,b=4;
cout<<"a="<<a<<",b="
<<b<<endl;
swap(a,b);
cout<<"a="<<a<<",b="
<<b<<endl;
}
void swap(int x,int y)
{
int t=x;
x=y;
y=t;
}
此程序的运行结果为:
a=3,b=4
a=3,b=4
这是个地址传递的样例:

#include "iostream.h"
void swap(int *,int *);
void main()
{
int a=3,b=4;
cout<<"a="<<a<<",b="
<<b<<endl;
swap(&a,&b);
cout<<"a="<<a<<",b="
<<b<<endl;
}
void swap(int *x,int *y)
{
int t=*x;
*x=*y;
*y=t;
}
 
此程序的运行结果为:
a=3,b=4
a=4,b=3

地址传递的例子一步一步地看都明白。也知道电脑具体是怎么执行的。。但是却怎么不明白按值传递,更不用说每一步都明白,和他们的区别了。~!希望高手细细道来。。
展开
 我来答
克拉默与矩阵
推荐于2016-10-08 · TA获得超过400个赞
知道小有建树答主
回答量:472
采纳率:100%
帮助的人:281万
展开全部
值传递:
形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,
不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。
指针(地址)传递:
形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作
yiouzhou
2007-11-08 · TA获得超过435个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:400万
展开全部
按值传递其实就是把变量复制了一遍,因为是复制品,所以他不会改变样品的值
比如有一个函数 fun( int x);然后去调用

int a=8;
fun(a);当运行到这里的时候 就创建了一个变量 x
然后 a 的的值就复制给 x 了
因为他们存放的地址不一样,所以函数里面 x 变化了
a 的值是不会变的

不知道你能不能理解
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
12f3210
2007-11-08 · TA获得超过299个赞
知道小有建树答主
回答量:443
采纳率:0%
帮助的人:424万
展开全部
按值传递更容易理解嘛.
参数为非指针类型,调用的时候不用地址传递,子程序中更改的是局部,而不是调用时的参数.
若要细细讲的话,按地址传递都还有需要说的.
请理解下"指针"与"指针所指向的对象"的差别.
"指针"又有地址么?等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式