题外话
今天开始军训了,晚上也有安排,回到宿舍差不多九点半了。
少了好多时间刷题和学习。
今天的内容实际是在等教官来时用手机看的。
没有接上昨天的内容,因为不能做笔记。
本来今天内容可以把函数基本知识全写完的,命名参数啊什么的。
宿舍弄回来一个洗衣机,进水口接的水龙头炸了,只能手动加水,来来回回跑了四五趟。
明天又要六点半起床,今天就先到这里吧。
正文
函数
函数声明
void foo();
创建一个函数声明(Microsoft Learn里叫做方法签名)。
无参数无返回值函数
1 | void SayHello() |
这就是函数定义,看上去跟C
一样。
void
表示无返回值。
int
,string
,double
等都可与void替换,表示返回值的类型。
调用一个方法只需要直接输入就行了。
SayHello();
貌似使用大驼峰命名法。
有参数无返回值函数
1 | void SaySomething(string message) |
在圆括号内指出形参的类型和名字。
按值传递和按引用传递的参数
- 将参数传递给某个方法时,值类型的变量会将其值复制到该方法中。 每个变量都有自己的值副本,因此不会修改原始变量。
- 使用引用类型时,会将值的地址传递到该方法中。 向该方法提供的变量会引用该地址中的值,因此对该变量的操作会影响另一个变量引用的值。
一个赋值进去,一个是传地址进去。
传值很常见,就是函数里随便造,离开函数还是那个值。
传地址这里给了一个样例。
1 | int[] array = {1, 2, 3, 4, 5}; |
注意到Clear()
函数中对array的操作对Array的内容发生了修改。
并不是创建了一个新数组array,把Array赋值过去,再在新数组里面把所有数设为0.
这也印证了前面说的int[]
实际是一个指针。
函数内的形参能覆盖掉同名的别的函数里的参数。