C++ 数组

数组是 C++ 中的一种重要数据结构,它允许程序员在一行代码中存储多个相同类型的数据。这篇文章将详细介绍 C++ 数组的概念、特点、初始化、访问方法以及一些实用示例。

一、数组的概念


数组是一种线性数据结构,它将一系列相同类型的数据组织在一起。数组的每个元素都有一个唯一的索引值,通过这个索引可以快速定位和访问特定位置的数据。在 C++ 中,数组通常用于存储一组相关数据,例如整数、字符或对象。

二、数组的特点


1. 顺序性:数组的元素在内存中按照顺序存储,可以通过索引依次访问。

2. 随机访问性:数组元素的位置是固定的,但可以通过索引直接访问,因此具有随机访问的特性。

3. 相同类型:数组中的所有元素具有相同的类型,这使得数组在存储和操作数据时具有较高的效率。

4. 长度限制:数组有固定的长度,超出长度的访问将导致数组越界。

5. 动态性:虽然数组的长度是固定的,但在程序运行过程中,可以通过重新分配内存来动态改变数组的长度。这需要使用到额外的内存管理函数,如 std::vector 容器。

三、数组的初始化


在 C++ 中,可以通过以下方式初始化数组:

1. 初始化列表:在声明数组时,使用花括号 {} 包含一个或多个初始值。例如:

int arr[] = {1, 2, 3, 4, 5};
2. 使用默认初始化值:对于整型、浮点型和字符型数组,如果没有提供初始化列表,编译器会为数组元素分配默认值。对于整型和浮点型,默认值为零;对于字符型,默认值为空字符 '\0'。

3. 初始化部分元素:可以只初始化数组的一部分元素,剩余元素将自动初始化为默认值。例如:

int arr[] = {1, 2, 4, 5};

四、访问数组元素


访问数组元素的方法是使用数组名加上索引值。索引从零开始,也就是说,数组的第一个元素对应的索引是 0。以下是一些访问数组元素的示例:

#include <iostream>

int main() {
int arr[] = {1, 2, 3, 4, 5};
std::cout << "arr[0] = " << arr[0] << std::endl; // 输出:arr[0] = 1
std::cout << "arr[1] = " << arr[1] << std::endl; // 输出:arr[1] = 2
std::cout << "arr[2] = " << arr[2] << std::endl; // 输出:arr[2] = 3
return 0;
}
注意:访问越界的行为是不确定的,可能会导致程序崩溃或产生未定义的行为。因此,在访问数组元素之前,最好检查索引是否在有效范围内。

五、数组的实用示例


1. 冒泡排序算法:

#include <iostream>

void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}

int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
std::cout << "排序后的数组为:\n";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
商务合作QQ:3765323427
Copyright © 2021-2024 冰狐智能辅助. All rights reserved. 浙ICP备15043866号 《冰狐智能辅助服务协议》