值传递:在使用值传递时,是把变量的值传给函数,函数中对此变量的任何修改都不影响该变量本身的值。
引用传递:使用引用传递时,在函数中对此变量的修改会影响变量的值。
说简单点,值传递,就是我把身份证复印件给了你,你在上面可以写几个字也可以撕掉,但我身份证上面显示内容不会变也不会被折断;
而引用传递,就是我把身份证给了你,你在上面写字,那确实身份证上就会显示你写的内容,你把身份证折断,那就真的是断了。
来个小例子演示下,一目了然。
再看输出结果的不同:
如上显示:用值传递时,变量在函数中被修改后,变量本身没有变化;用引用传递时,变量在函数中被修改后,确实发生变化。
使用引用传递就要用到关键字:ref。用法如上,就是在定义函数和调用函数时在变量前加上关键字ref。
用ref关键字使用引用变量也有两个注意事项:
1、由于引用的变量的值会被改变,因此使用的变量必须是变量,也就是“非常量”的变量,举个例子:const int myNumber = 5;
const,英文含义:常量。被关键字const修饰的变量的值不能被改变,所以加上const会发生错误。
2、必须使用初始化过的变量。如:int myNumber = 5;可以。 如果这样定义:int myNumber;就不可以。