4.1 数组
4.1.1 一维数组
定义方式
int arr[10];//输出内存中原本存储的值?
int arr[10]={1,2,3};//不满的自动赋初始值 int 0
int arr = {1,2,3};
cout<<arr; 输出数组首地址
cout<<&arr[0]; 输出元素首地址
sizeof(arr) 整个数组所占长度
数组名是常量不可以修改,例如 int arr[10]; arr=10;会报错
4.1.2 二维数组
定义方式
int arr[2][3];//输出内存中原本存储的值?
int arr[2][3]={{1,2,3}};//不满的自动赋初始值 int 0
int arr[2][3] = {1,2,3};
int arr[][3] = {1,2,3};//可以省略行
4.2 函数
4.2.1 函数的格式
int sum(int a,int b){
return a+b;
}
需要注意的是函数的定义需要再调用之前,因此可以将函数书写在调用之前或者采用声明的方式 eg int sum(int a,int b);告诉编译器该函数存在
#include<iostream>
using namespace std;
int add(int a[2], int b[2]);
int main() {
int arr1[2] = { 1,2 };
int arr2[2] = { 1,2 };
int k = add(arr1, arr2);
cout << arr1[0];
system("pause");
return 0;
}
int add(int a[2], int b[2]) {
a[0] = 9;
return 0;
}
4.2.2 函数集成在其他文件中怎么引用(函数分文件)
- 在“头文件”中创建.h后缀名的头文件
- 在“源文件”中创建.cpp后缀名的源文件
- 在.h中写函数声明
- 在.cpp文件中定义函数
- 在使用文件中引用头文件 #include"myfunc.h"
4.2.3 函数的默认参数
函数的默认参数声明和实现不能同时有,即要么实现有默认参数,要么声明有默认参数。
4.2.4 函数的占位参数
void func(int a, int){
}
/*
void func(int a, int=10){
}
*/
int main{
func(10,10);
}
4.2.5 函数的重载
需要满足的条件:
- 同一个作用域下
- 函数名相同
- 函数参数类型不同、数量不同或者顺序不同
void func(int a){
}
void func(int a, int b){
}
引用也可以作为重载的条件
void func(int &a){
// 1
}
void func(const int &a){
// 2
}
int main{
int a=10;
func(a);// 调用1
func(10);// 调用2
}
函数重载碰到默认参数时容易出现问题,例如
void func(int a, int b=10){
// 1
}
void func(int a){
// 2
}
会导致编译器不明确该调用哪个实现