- C++
C++ 一维数组教程
- 2024-12-7 21:49:02 @
C++一维数组教程
1. 什么是一维数组?
一维数组是一种数据结构,它可以存储一组相同类型的数据。你可以把它想象成一排连续的小盒子,每个盒子都可以存放一个数据,而且这些数据的类型都一样。例如,如果你想存储一组整数,就可以使用一维整数数组。
2. 定义一维数组
- 基本语法
- 定义一维数组的基本语法是:
数据类型 数组名[数组大小];
- 例如,定义一个能存储5个整数的数组:
int numbers[5];
- 这里
int
是数组中元素的数据类型(表示整数),numbers
是数组名,5
是数组的大小,也就是这个数组可以存放5个整数。
- 定义一维数组的基本语法是:
3. 数组的初始化
- 默认初始化
- 当你定义一个数组时,如果没有对它进行初始化,对于基本数据类型(如
int
、double
等),数组元素会被默认初始化。对于数值类型,通常会被初始化为0。例如,上面定义的numbers
数组,它的5个元素一开始都被初始化为0。
- 当你定义一个数组时,如果没有对它进行初始化,对于基本数据类型(如
- 初始化列表初始化
- 你也可以在定义数组的时候就给它赋初始值,使用花括号
{}
包含初始值列表。例如:int scores[3] = {85, 90, 92};
- 这样就定义了一个名为
scores
的数组,它有3个元素,并且分别初始化为85、90和92。 - 如果你提供的初始值个数少于数组大小,剩下的元素会被默认初始化为0。例如:
int anotherArray[4] = {1, 2};
,这个数组的前两个元素是1和2,后两个元素是0。 - 如果你不指定数组大小,编译器会根据初始化列表中的元素个数来确定数组大小。例如:
int array[] = {3, 4, 5};
,这里编译器会自动确定array
数组的大小为3。
- 你也可以在定义数组的时候就给它赋初始值,使用花括号
4. 访问数组元素
- 使用下标访问
- 可以通过下标来访问数组中的元素,下标是从0开始计数的。例如,对于
scores
数组,scores[0]
表示第一个元素(值为85),scores[1]
表示第二个元素(值为90),scores[2]
表示第三个元素(值为92)。 - 例如,你可以这样输出数组中的元素:
for (int i = 0; i < 3; ++i) { std::cout << scores[i] << " "; }
- 这段代码会输出数组
scores
中的所有元素,每个元素之间用空格隔开。
- 可以通过下标来访问数组中的元素,下标是从0开始计数的。例如,对于
5. 数组作为函数参数
- 传递数组给函数
- 当把数组作为参数传递给函数时,实际上传递的是数组的首地址(也就是第一个元素的地址)。在函数中,对数组元素的修改会影响到原始数组。
- 例如,定义一个函数来计算数组元素的总和:
int sumArray(int arr[], int size) { int sum = 0; for (int i = 0; i < size; ++i) { sum += arr[i]; } return sum; }
- 这里
int arr[]
表示函数接受一个整数数组作为参数,int size
是数组的大小(因为只传递数组首地址是不知道数组大小的,所以需要额外传递数组大小参数)。
- 调用函数示例
- 假设你有一个数组
myArray
,可以这样调用sumArray
函数:
int myArray[] = {1, 2, 3, 4, 5}; int arraySize = sizeof(myArray) / sizeof(myArray[0]); int total = sumArray(myArray, arraySize); std::cout << "数组元素总和为: " << total << std::endl;
- 首先计算
myArray
的大小(元素个数),然后调用sumArray
函数计算总和,并输出结果。
- 假设你有一个数组
6. 动态分配数组
- 使用
new
操作符- 在某些情况下,你可能不知道数组的大小,直到程序运行时才确定。这时可以使用
new
操作符来动态分配数组。例如:
int size; std::cout << "请输入数组大小: "; std::cin >> size; int* dynamicArray = new int[size];
- 这里首先从用户那里获取数组大小,然后使用
new
操作符分配一个大小为size
的整数数组,返回的是数组首元素的地址,所以需要用一个指针(int*
)来接收。
- 在某些情况下,你可能不知道数组的大小,直到程序运行时才确定。这时可以使用
- 释放动态分配的数组
- 当你使用完动态分配的数组后,一定要使用
delete[]
操作符来释放内存,避免内存泄漏。例如:
delete[] dynamicArray;
- 这会释放之前用
new
分配的数组所占用的内存空间。
- 当你使用完动态分配的数组后,一定要使用
0 条评论
目前还没有评论...