C语言中的传值调用时什么意思呀?

书上讲:在C语言中,所有的函数参数都是“通过值”传递的,也就是说,传递给被调用函数的参数的值存放在临时变量中,而不是存放在原来的变量中。一直没有理解传值调用时怎么回事?希... 书上讲:在C语言中,所有的函数参数都是“通过值”传递的,也就是说,传递给被调用函数的参数的值存放在临时变量中,而不是存放在原来的变量中。一直没有理解传值调用时怎么回事?希望多多指教,谢谢! 展开
 我来答
吉祥二进制
高粉答主

2015-05-28 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84566

向TA提问 私信TA
展开全部

  在c语言中每一个变量都有两个属性一个是值,一个是址。比如

int a = 2;

  变量a的值是2,变量a的地址,可以用&取地址操作符获取,即&a。

  因此以C语言的函数传递中具备两种方式传递参数,一种是传址,一种传值。比如

void f1(int v) { ; } //函数f1
void f2(int *p) { ; } //函数f2
f1(a) ; //这里传值 
f2(&a) //这是传址
ywj321442
2012-09-25
知道答主
回答量:22
采纳率:0%
帮助的人:10.8万
展开全部
C语言函数调用有两种方式,一是传值调用,二是传地址调用。
当传值调用时,只是把原变量拷贝一份给函数参数,就像你拷贝了一份文件,然后修改了这个拷贝的文件,对原文件是没有影响的,所以传值调用不影响原来的变量。
而传地址调用则是传原变量的地址,通过指针实现,也就是参变量指针和原变量指针同时指向一个内存区,可见,参变量改变了该地址的内容,相应原变量所指的内容也改变了。编程很好玩,学好C语言是关键,C语言最难理解是指针,但只要喜欢,不畏惧,没什么难的,LZ加油哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万海里寻夫
2012-09-25 · TA获得超过172个赞
知道答主
回答量:31
采纳率:0%
帮助的人:48.9万
展开全部
值传递就是这样,举个例子:
void fun(int a, int b);

int main()
{
int c = 1;
int d = 2;
fun(c, d); // 这里传递进去的c和d,跟形参a,b的地址都不是同一个地址,仅仅是将c的值赋给a,d的值赋给b,在fun函数里面改变a和b的值,跟c和d本身无任何关系
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友449bac7b2
2012-09-25 · 超过10用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:35.1万
展开全部
比如说,你写了个函数void swap(int a,int b)用于将2个整形变量互换.现在你在主函数中定义整形变量x和y, 然后你想要通过这个函数将x和y的值进行互换,就调用了swap(x,y).这里注意了,这里只是将x和y的值付给了a和b,然后将a和b的值互换,实际上x和y的值并没有互换。这就是传值调用将值放在临时变量的意义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gui4271363
2012-09-25 · TA获得超过130个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:76.4万
展开全部
“在C语言中,所有的函数参数都是“通过值”传递的”,这句话有问题还有个“引用传递”,值传递只是调用时把参数的值传给调用者,虽然在方法中对值进行了修改,但是不影响变量然来的值;重点是“引用传递”把参数传给调用者的是地址,也可以说是变量对象的引用,而不是值,一旦改变值就改变了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式