函数
# 函数参数
# 指针作参数
- 结构体作为参数,内存消耗大,用结构体的指针可以避免这个问题
- 常量指针 限定当前对象的内存空间不可以修改
# 数组作参数
- 用指针接收,还需要传数组的长度
- 数组做函数参数相当于指针,最好用 int ary[] 形式,读起来更像数组
- 多维数组 (int ary [][2],int count),最高维不定,其余维均已知
# 引用作参数
- 引用的本质是指针,但指针可以传入nullptr空指针,但引用不可以
- Role*& role 表示Role指针类型的应用,将Role*用另一个类型代替进行理解 role可以指向其他变量
# 默认实参
- 默认参数只能放在最后
# 不定量参数
- int main(int argc, char* argv[]) main函数接收的是不定量的参数
- int add(int count, ...) #include <cstdarg>
int add(int count, ...)
{
//va_list arg;
char* arg;
va_start(arg, count);//获取内存地址
int sum{};
for(int i = 0; i < count; i++)
{
sum += va_arg(arg,int);//读取
}
va_end(arg);
return sum;
}
# 函数返回
# 返回指针
- 不要返回局部变量(存放在栈区)的指针
- 返回结构体时,最好返回结构体的指针
# 返回引用
返回引用相当于返回解指针
提示
返回指针与返回引用:返回指针可以返回空指针,但引用是不能返回空的
//数组的引用
int c[100];
int (&e)[100] = c;
//传递数组引用
int num(int(&ary)[100])
{
for(auto x:ary);
return sizeof(ary);
}