在C语言中,数据传送是单向的,即只能把实参的值值传递给形参,但形参的变化不会改变实参的值,我们可以简单理解,就相当于把实参的值 复制给了另一个数(形参),而另一个数的改变不会改变原来数(实参)的值,正规来说:他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。。
**3.2.实参传递给形参的参数个数类型和顺序都应相同,否则会系统强制转换,出现数据丢失或者“类型不匹配”的错误
比如
loat a=5.34; void number(int b); int main() { number(a); //这样就会出现丢精度现象 }
3.3如果实参是数组名,那么形参传递的之就是地址的值
int a[5]; void add(int *b); int main() { add(a);//这样就是把数组a的首地址做为形参传递 }
在C里面 是无法做到形参改变 实参值同步改变的。如果要用函数改变实参的值,可以用指针作为参数来改变
通过直接改变地址存储值来改变实参