数组名的定义
在c++中,数组名某种程度上可以被视为指针常量。声明一个数组时,例如,
float arr[5];
arr本身就是一个指向数组首元素的指针
数组名的性质及特点
性质
- 数组名类似于一个指针常量,不能将其指向另一个内存地址
- 由于数组名被解释为指向数组首元素的指针,因此可以通过数组名来访问数组中的元素
float arr[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
// 使用数组名访问数组元素
float firstElement = arr[0];
float secondElement = arr[1];
特点
- 数组名在大多数情况下会自动转换为指向第一个元素的指针,但在某些情况下会保留数组的信息,如,
sizeof(arr)
会返回整个数组的大小
- 数组名在传递给函数时会退化为指针,因此在函数参数中声明的数组形参实际上是指针
float arr[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
// 数组名作为函数参数
void printArray(float* arr, int size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
}
// 调用函数,传递数组名
printArray(arr, 5);
数组与数组名
#include <iostream>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
// 访问数组元素-最常见和直观的访问方式
for (int i = 0; i < 5; i++) {
std::cout << "Element " << i << ": " << numbers[i] << std::endl;
}
// 使用数组名访问数组元素
for (int i = 0; i < 5; i++) {
std::cout << "Element " << i << ": " << *(numbers + i) << std::endl;
}
return 0;
}