c++ - C++中数组声明的一个问题

标签 c++

下面两段代码有什么区别。

int a[] = {0,0};
int a[2] = {0,0};

在这两种情况下,我似乎都可以为 a[3] 赋值。在任何情况下我都可以访问 a[3] 。那有什么区别呢?

最佳答案

没有区别。在第一个中,编译器会为您进行计数,如果您决定稍后更改元素的数量,这很好。

您的编译器允许您分配或使用 a[3] 这一事实并不意味着这样做是正确的。事实上,您甚至无法访问 a[2],因为它只有两个元素,由下标 0 和 1 索引。

关于c++ - C++中数组声明的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444933/

相关文章:

c# - PInvokeStackImbalance C# 调用非托管 C++ 函数

c++ - C++11 之前的 "Constant expressions"

c++ - 使用其名称作为字符串复制数组

c++ - 从 LUA 脚本调用 C++ 类函数

c++ - 查询从内存映射文件中检索到的 Rtree 时出现段错误

c++ - QTableView 或 QListView 如何用手拖动滚动?

c++ - std::minstd_rand 的界限是什么?

C++ 为什么返回的 const 引用可以被修改?

c++ - wglGetProcAddress 未定义

c++ - 在 C++ 中使用 vector 对排序