一、数组
数组是固定大小、相同类型元素的顺序集合,用来存储一系列同类型数据,可以看作一组相同类型的变量。
1. 一维数组
语法:
cpp
type array[arraySize];
示例:
cpp
double balance[5] = {1000.0, 2.0, 3.9};
要点:
- 如果省略数组大小,数组长度等于初始化列表里元素的个数。
- 数组下标从 0 开始,通过
数组[下标]访问元素。
2. 二维数组(多维数组)
多维数组:有几个方括号[],就是几维数组。 语法:
type arrayName[x][y];
行索引、列索引全部从 0 开始。
二维数组初始化
可以按行分组初始化(推荐,可读性好):
cpp
int a[3][4] = {
{0, 1, 2, 3}, /* 初始化索引为 0 的行 */
{4, 5, 6, 7}, /* 初始化索引为 1 的行 */
{8, 9, 10, 11} /* 初始化索引为 2 的行 */
};
嵌套花括号可以省略,会按顺序依次填充元素,效果完全相同:
int a[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
访问二维数组元素
通过行下标、列下标访问数组元素:
int val = a[2][3];
含义:获取数组第 3 行、第 4 个元素(下标从 0 开始)
3. 字符数组
专门用来存放字符的数组。
二、函数
函数是一组一起执行一个任务的语句。 每个 C++ 程序至少有一个函数:主函数 main();我们可以自定义额外函数。
- 代码可以拆分到不同函数,拆分原则:一个函数只负责完成一项特定任务。
- 函数声明:告诉编译器函数名、返回类型、参数信息;函数主体单独定义。
- 函数定义:写函数的实际执行代码。
- C++ 标准库内置大量函数:
strcat():拼接两个字符串memcpy():内存拷贝
函数别名:方法、子例程、程式、程序
1. 函数定义
通用格式
cpp
return_type function_name( parameter list )
{
body of the function
return return_type;
}
函数由函数头 + 函数主体组成:
- 返回类型 :函数返回值的数据类型;无返回值时写
void。 - 函数名称 :函数名字,函数名 + 参数列表构成函数签名。
- 参数 :形参,相当于占位符;调用函数时传入的值叫实参。参数列表规定参数类型、顺序、数量;参数可选,函数可以无参数。
- 函数主体:花括号内,实现功能的代码语句。
2. 函数声明
告诉编译器如何调用该函数,函数实现可以放在后面或者别的文件。 语法:
return_type function_name( parameter list );
示例:
int max(int num1, int num2);
声明中,参数名可以省略,只保留类型,下面写法合法:
int max(int, int);
使用场景:函数定义写在别的
.cpp源文件时,必须在调用文件顶部写函数声明。
3. 函数调用 & 值传递
形式参数(形参):定义函数时括号里的变量 实际参数(实参):调用函数时传入的参数,可以是常量、变量、表达式
值传递特点(单向传递)
- 调用函数时,实参把值拷贝给形参;不能把形参修改传回实参。
- 函数内部修改形参,不会影响外面的实参。
完整示例代码:
cpp
#include <iostream>
using namespace std;
// 函数声明
int max(int num1, int num2);
int main ()
{
// 局部变量声明
int a = 100;
int b = 200;
int ret;
// 调用函数来获取最大值
ret = max(a, b);
cout << "Max value is : " << ret << endl;
return 0;
}
// 函数返回两个数中较大的那个数
int max(int num1, int num2)
{
// 局部变量声明
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
输出
Max value is : 200
4. 函数默认参数
C++ 中,形参可以设置默认值。 语法:返回值类型 函数名 (参数 = 默认值) {}
cpp
int func(int a, int b = 10, int c = 10) {
return a + b + c;
}
// 规则:
//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值
//2. 如果函数声明写了默认值,函数实现定义时,不能再写默认参数
int func2(int a = 10, int b = 10);
int func2(int a, int b) {
return a + b;
}
int main() {
cout << "ret = " << func(20, 20) << endl;
cout << "ret = " << func(100) << endl;
system("pause");
return 0;
}
5. 内联函数
在函数定义最前面加关键字 inline。 作用:减少函数调用开销,节省程序运行时间。