数组之内存结构
值类型:int float double char bool
值类型的值存储在内存的栈中
int a=10 int b=a;
值传递,是将一个变量的值拷贝给另一个变量
引用类型:数组、字符串
引用类型的值存储在内存的堆中
这里数组我感觉类似于退化为指针处理的,数组名变量存储的是地址,通过地址来寻值
b=a;叫做引用传递,这时候变量之间的传递就是拷贝一个地址给另一个变量
二维数组
函数
普通函数的调用,实参与形参互不影响(传递实际上是值传递)
ref参数(传递实际上是引用传递,同指针)
要求:变量必须在函数外赋值,然后在函数体内进行操作
形参与实参前面都要加上ref关键字
out参数
一个函数中如果需要返回多个不同类型的值,就需要用out参数
要求:函数内必须为out 参数赋值,函数外可不赋值
对应的实参与形参前都要有out关键字
我觉得out与ref没有什么区别,经上网查找感觉还是有一点区别
ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值以out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的主要区别,概括的说就是:ref是有进有出,out是只出不进。
也就是说ref是为了改变外部一个你想改变的值,而out是为了接受内部多个返回值