总结:
1.函数传参:形参就是对实参的简单复制
2.数组传参不能检查数组的长度(定义的大小)
3.二维数组传参(多维数组可以转化为二维或一维数组):
1.强制转化为一维指针,一维数组
2.通过行指针
3.强制转化为二维指针(没有意义)。传参之后都只能通过指针寻址访问,数组形式不再适用。
所以如果行数和列数都不确定的二维数组传参没有必要变成二维数组。因为传参以后也要按照一维数组的方式进行寻址,所以不如直接强制转化为一维数组。
对于列数确定的二维数组可以传参转化为二维数组。
如形参定义为int a[] ; 传参之后还可以像原来的实参一样,通过数组的形式访问,很方便。
4.数组以非引用类型的传递时,此时数组会自动转换为同类型的指针,即初始化为相应类型实参的副本。
调用函数时,函数实际操作的是指针的副本,而不会修改实参指针的值,但是可以通过指针改变数组元素的值。--来自网络
//我的观点:引用传递也是简单的复制,只不过是多了一级指针,可以通过指针操作目标数据(验证后看来是对的)
引用传递:(来自百度百科)
在C++中,函数参数的传递方式有引用传递。
所谓引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中队参数所进行的修改,将影响到实际参数。
5.参数传递:
在完成一定功能的函数,参数传递时,如果需要改变实参,最好通过引用传递实现对实参的操作和改变。返回值最好用来返回函数的执行状态 ,以方便在调用函数中检查被调用函数的执行情况,并进行提示。