C++数组的背景知识
Background knowledge on array in C++
我使用Clion(版本2018.02)来运行代码。这是代码:
int a[10]={0};
cout<<a[-1]<<endl;
cout<<a[10]<<endl;
经过几次测试,我发现每次a[-1]=0;但是,a[10] 的值总是在变化。我想知道为什么在 a[10] 上没有发现这种现象。换句话说,我想 a[-1] 也应该改变。
#实际上我知道上面的那些东西是未定义的行为。
然而,在我看来,未定义的行为总是意味着它们是随机的。我所做的只是创建错误,然后看看为什么 a[-1] 总是一个特定的数字。这样我就可以知道它在内存流中是如何工作的。
多谢!!
这取决于您使用的环境。例如,在 vs13 中,我在调试模式下为 a[-1]
和a[10]
获得了相同的垃圾值,但在发布模式下,我获得了 a[-1]
的垃圾值和a[10]
的0
垃圾值。
您可以确定的一件事是,在任何情况下,在这些情况下,您都会有未定义的行为,并且值应始终被确定为垃圾。
相关文章:
- 如何在全屏模式下(在OpenGL中)使背景透明
- 使用窗口中的QSlider更改背景音量
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- SDL2 透明背景
- 与C++哈希表的基础知识混淆
- 在 Visual C++ 中以编程方式更改按钮的背景图像
- 多重采样背景不显示
- 直接2D用WM_ERASEBKGND擦除背景?
- 在特定时间内更改 QLabel 的背景颜色
- 如何设置与其背景图像大小相对应的窗口大小?
- 更改包含 QButton 的 Qlayout 的背景颜色
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 删除K的背景掩码-意味着Python或C++中的集群/
- SystemParametersInfo将背景设置为纯色,而不是实际设置图片
- 背景任务UWP C++只触发一次
- 基础知识指针 c++
- 我正在尝试更改背景的颜色,但它不起作用
- 在 C 中获取背景外壳命令的 PID
- 使用 QVector 创建图形磁贴(QCache 之前的基础知识)
- C++数组的背景知识