总结了两个回答关于指针和单量传入是值传递,函数执行后不会改变原来变量值
数组是取了数组的首地址相当于传入的是实参,函数执行后会发生改变写的非常非常清楚
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;