一维数组一共有三种定义方式:
数据类型 数组名[数组长度];
数据类型 数组名[数组长度] = {值1, 值2, ...};
数据类型 数组名[] = {值1, 值2, ...};
一维数组名称的用途
可以统计整个数组在内存当中的长度sizeof(数组名)
可以获取数组在内存中的首地址cout << 数组名<
#include
using namespace std;
int main() {
int arr[5] = { 1, 2, 3, 4, 5 };
// int在内存中占4字节,整个数组在内存中占20个字节
cout << sizeof(arr[0]) << endl; // 4个字节
cout << sizeof(arr) << endl; // 20个字节
//数组长度除以类型长度,能得到数组的个数
cout << (sizeof(arr) / sizeof(arr[0])) << endl; // 5个元素
// 直接输出数组能看到首地址
cout << (int)arr << endl; // 数组首地址
cout << (int)&arr[0] << endl; // 数组首地址
cout << (int)&arr[1] << endl; // 第二个元素的地址,和第一个元素相差4
system("pause");
return 0;
}
案例练习
#include
using namespace std;
int main() {
//找出5只小猪中最重的一只
int pigs[5] = { 415, 467, 445, 432, 413 };
int max = 0;
for (int i = 0; i < sizeof(pigs) / sizeof(pigs[0]); i++) {
max = max > pigs[i] ? max : pigs[i]; // 擂台法
}
cout << "最重的小猪体重为: " << max << endl;
// 将下列数组的元素逆置
int arr[5] = { 1, 2, 3, 4, 5 };
int start = 0;
int end = size(arr) - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
// 输出
for (int i = 0; i < size(arr); i++) {
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
案例:
int arr[] = { 4, 2, 8, 0, 5, 7, 1, 3, 9, 6 };
for (int i = 1; i < size(arr) - 1; i++) { // 排序总次数=元素个数 - 1
for (int j = 0; j < size(arr) - i; j++) { // 每轮对比次数=元素个数-排序轮数-1
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
二维数组是数组的,数组,新增了一个维度
四种定义方式
1.数据类型 数组名[行数][列数];
2.数据类型 数组名[行数][列数] = {{数据01, ...}, {数据11, ...}, {数据nn, ...}};
3.数据类型 数组名[行数][列数] = {数据1, 数据2, ...};
4.数据类型 数组名[][列数] = {数据1, 数据2, ...};
二位数组的名称
查看二维数组的内存空间sizeof(二维数组名)
查看二维数组的首地址
案例练习:
/*
|语文|数学|英语
张三| 100| 99 | 98
李四| 90 | 92 | 91
王五| 88 | 99 | 88
*/
string names[3] = { "张三", "李四", "王五" };
int score[3][3] = {
{100, 99, 98},
{90, 92, 91},
{88, 99, 88}
};
for (int i = 0; i < size(score); i++) {
int sum = 0;
for (int j = 0; j < size(score[0]); j++) {
sum += score[i][j];
}
cout << names[i] << "同学总分为: " << sum << endl;
}
返回值类型 函数名 (形参列表) {
函数体语句;
return 返回值;
}
实现一个函数,计算两个整数相加的结果并返回
#include
using namespace std;
int addInt(int num1, int num2) {
return num1 + num2;
}
int main() {
// 实现一个两数相加的函数
cout << addInt(3, 4) << endl;
system("pause");
return 0;
}
函数名(实参列表);
#include
using namespace std;
int addInt(int num1, int num2) { // 定义函数的形参列表
return num1 + num2;
}
int main() {
int a = 3;
int b = 4;
// 实现一个两数相加的函数
int result = addInt(a, b); //传入的实参列表
cout << result << endl;
system("pause");
return 0;
}
// 声明可以有很多次
int max(int a, int b);
int max(int a, int b);
// 定义
int max(int a, int b) {
return a > b ? a : b;
}
.h
的头文件.cpp
的源文件示例
//max.h文件
#include
using namespace std;
// 比大小函数声明
int max(int a, int b);
// max.cpp文件
#include "max.h"
// cpp文件定义函数
int max(int a, int b) {
return a > b ? a : b;
}
// 在引用时只需要引用.h头文件即可
#include "max.h"
int main() {
int a = max(5, 6);
cout << a << endl;
system("pause");
return 0;
}
学习笔记与课程计划
B站视频链接