查看文章 |
函数参数传递分为指针,值,引用传递。 值传递不会更改实参的值:原因是在利用值传递的时候,程序会在栈中分配一个形参空间,然后用实参的值初始化它,这个形参在栈中的位置跟实参在栈中的位置是完全不同的,因此我们对形参的修改不会对实参产生影响,在推出函数后,形参的内存被释放,形参消失。 下面的例子是指针传递。 #include <iostream> int main() return 0; 引用传递:引用可以这样认为,它指向一块内存,这块内存从一开始就必须是固定的,不能改变的,因此这就是为什么引用在声明时就必须初始化,它是实参的另一个名字,对形参的修改同样可以改变实参的值。 引用传递例子: #include <iostream> int main() swap(x,y); return 0;
结构体也可以作为参数来传递。它作为参数的规则完全和内置类型是一样的。 数组做为参数传递的时候规则会稍微不一样下面是我们的一个例子: #include <iostream> int main() return 0; 上面的数组作为传递的时候看出来什么不好的地方了没?是的 我们的第一个参数a[]是不允许在操作过程中被改变的,所以我们可以用const修饰它。这样我们的程序更健壮,更容易理解。 |

