基础

形参和实参:

参数类型和数量必须对应(类型可以转换,比如double -> int)
为了和C语言兼容,没有形参时可以写上void
函数的返回类型不能是数组或函数类型,但可以是指向数组或函数的指针

局部对象

形参和函数体内定义的变量统称为局部变量,函数结束时会销毁
局部静态对象:用static修饰,直到程序结束才会被销毁

**参数传递

形参初始化的机理和初始化变量一样。分为值传递和引用传递。区别:传递非引用的参数时会进行拷贝

数组形参

两个性质:不允许拷贝数组(不能以值传递传递数组) 和 使用数组时会将其转换成指针。

main

int main(int argc , char *argv[]){...}
第一个参数表示字符串的数量,因为第二个形参是数组,所以定义等价为
int main(int argc , char **argv){...}
其中argv指向char*

可变形参

initializer_list

返回数组指针

int (*p2)[10] = &arr; //p2指向arr

int (*func(int i))[10];
表示解引用函数调用结果将得到一个大小为10的int型数组

构造函数

构造函数的任务是初始化数据成员。
1.构造函数没有返回类型
2.类可以包含多个构造函数(类似重载函数)
3.构造函数不能声明成const