函数值传递:原来的值不变 不会改变实参的值 地址传递:原来的值变了 会改变实参的值 举个例子 #include<stdio.h> void temp(int a,int b) { int t; t=a; a=b; b=t; } void main() { int a=5;int b=3; temp(a,b); printf("%d%d",a,b); } 结果 a=5;b=3 并没有因为调用了函数,而变成a=3;b=5;原因就是它是函数值传递,而不是地址传递
你对地址传递的理解有点问题,地址传递也不一定改变实参的值,地址传递是将实参所指的地址赋值给形参,然后在调用函数体中对地址所指向的元素进行操作这样才会达到改变实参所指地址的元素的作用,如果只是在函数体中对形参所指地址进行操作是对实参没有任何影响的,也就是说,要想改变实参,必须要有间址运算符;
如果形参是数组名或者指针,那么就是按地址传递,除此之外都是按值传递
点赞
扫一扫分享朋友圈
二维码
分享
你确定要删除这个问题吗?