C语言中的传值调用时什么意思呀?
书上讲:在C语言中,所有的函数参数都是“通过值”传递的,也就是说,传递给被调用函数的参数的值存放在临时变量中,而不是存放在原来的变量中。一直没有理解传值调用时怎么回事?希...
书上讲:在C语言中,所有的函数参数都是“通过值”传递的,也就是说,传递给被调用函数的参数的值存放在临时变量中,而不是存放在原来的变量中。一直没有理解传值调用时怎么回事?希望多多指教,谢谢!
展开
10个回答
展开全部
C语言函数调用有两种方式,一是传值调用,二是传地址调用。
当传值调用时,只是把原变量拷贝一份给函数参数,就像你拷贝了一份文件,然后修改了这个拷贝的文件,对原文件是没有影响的,所以传值调用不影响原来的变量。
而传地址调用则是传原变量的地址,通过指针实现,也就是参变量指针和原变量指针同时指向一个内存区,可见,参变量改变了该地址的内容,相应原变量所指的内容也改变了。编程很好玩,学好C语言是关键,C语言最难理解是指针,但只要喜欢,不畏惧,没什么难的,LZ加油哦
当传值调用时,只是把原变量拷贝一份给函数参数,就像你拷贝了一份文件,然后修改了这个拷贝的文件,对原文件是没有影响的,所以传值调用不影响原来的变量。
而传地址调用则是传原变量的地址,通过指针实现,也就是参变量指针和原变量指针同时指向一个内存区,可见,参变量改变了该地址的内容,相应原变量所指的内容也改变了。编程很好玩,学好C语言是关键,C语言最难理解是指针,但只要喜欢,不畏惧,没什么难的,LZ加油哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
值传递就是这样,举个例子:
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;
}
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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如说,你写了个函数void swap(int a,int b)用于将2个整形变量互换.现在你在主函数中定义整形变量x和y, 然后你想要通过这个函数将x和y的值进行互换,就调用了swap(x,y).这里注意了,这里只是将x和y的值付给了a和b,然后将a和b的值互换,实际上x和y的值并没有互换。这就是传值调用将值放在临时变量的意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“在C语言中,所有的函数参数都是“通过值”传递的”,这句话有问题还有个“引用传递”,值传递只是调用时把参数的值传给调用者,虽然在方法中对值进行了修改,但是不影响变量然来的值;重点是“引用传递”把参数传给调用者的是地址,也可以说是变量对象的引用,而不是值,一旦改变值就改变了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询