函数中的形参与实参

c语言小问题 专栏收录该内容
11 篇文章 0 订阅

总结了两个回答关于指针和单量传入是值传递,函数执行后不会改变原来变量值

数组是取了数组的首地址相当于传入的是实参,函数执行后会发生改变写的非常非常清楚

http://www.cnblogs.com/DarrenChan/p/5778318.html

在普通变量或下标变量作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值赋予形参变量。在用数组名作函数参数时,不是进行值的传送,即不是把实参数组的每一个元素的值都赋予形参数组的各个元素。因为实际上形参数组并不存在,编译系统不为形参数组分配内存。那么,数据的传送是如何实现的呢?在我们曾介绍过,数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送,也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。因此当形参数组发生变化时,实参数组也随之变化。

https://zhidao.baidu.com/question/1830735159350303140.html

 

一般有两种传递方式:bai1)值传递----包括(数值传递du,指针传zhi递) 2)引用传递你问题中的指针传递,其实就是dao值传递:(下面这个你能看懂么)

值传递的话,形参在函数内只能作为右值,而不能作为左值吗?

追答

是。
值传递就相当于是拷贝,也就是赋值:
如: 
int a = 10;
int b;
b = a;
  • 2
    点赞
  • 4
    评论
  • 1
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值