📜  c++ 默认数组值不为空 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:49.712000             🧑  作者: Mango

C++ 默认数组值不为空

在 C++ 中,当我们声明并定义一个数组时,如果未显式初始化其中的元素,则它们将具有默认的值。不同于某些高级语言,C++ 中默认值可能是垃圾值(也就是随机值),而不是一些预设的值,例如零或空字符串。

数组声明与初始化

下面是一个简单的 C++ 程序,演示了如何声明并初始化数组:

#include <iostream>
using namespace std;

int main() {
  // 声明数组并分配内存空间
  int arr[5];

  // 输出数组的每个元素
  for(int i = 0; i < 5; i++) {
    cout << arr[i] << endl;
  }

  return 0;
}

当上述代码被编译与执行时,将会输出以下内容:

1766410896
32767
0
6963516
32523

在这个示例中,数组 arr 包含五个元素,但是未被显式初始化。由于它们没有被初始化,所以 arr 的五个元素都具有垃圾值。

现在,我们来看另一个 C++ 程序,这次我们将会显式地为每个元素分配初始值。

#include <iostream>
using namespace std;

int main() {
  // 声明数组并初始化每个元素
  int arr[5] = {1, 2, 3, 4, 5};

  // 输出数组的每个元素
  for(int i = 0; i < 5; i++) {
    cout << arr[i] << endl;
  }

  return 0;
}

运行结果:

1
2
3
4
5

这次,数组 arr 被初始化为包含五个元素,这些元素的值从 1 到 5 进行了逐一初始化。因此,确定了数组元素的值后,程序才输出了我们期望的结果。

总结

在 C++ 中,未显式初始化的数组元素将是未定义的、随机的垃圾值。在声明并定义数组时,我们应该策划好数组元素值的初始化方案,以确保它们在代码的后续执行过程中将得到意料之中的值。