c++数组越界相关
2016-05-21 08:39
288 查看
c++数组越界相关
标签(空格分隔): 问题少年系列今天同学问我一个很细节的问题,觉得提问那个人提不错的
#include "stdafx.h" #include <iostream> using namespace std; int main() { int c=5; int a[2]={1,2}; cout<<&a[0]<<endl; cout<<&a[1]<<endl; cout<<&a[2]<<endl; cout<<&a[3]<<endl; cout<<&a[4]<<endl; cout<<&c<<endl; a[4]=666; cout<<c; system("pause"); return 0; }
问题:为什么c和a【4】内存一样?
我也很疑惑,所以查了一下栈是由高往低增长的,而数组的存储是由低位往高位存的
int类型都占用4个字节
c++不对数组边界检查
以上三条足以解决问题
但其中还存在问题?a[2],a[3]的地址?应该是是因为他用a数组,而a数组是int类型导致的,目测是内部机制的原因
我的原文链接
http://flyily.com/2016/05/21/c-%E6%95%B0%E7%BB%84%E8%B6%8A%E7%95%8C%E7%9B%B8%E5%85%B3/
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- IE7降低内存和降低CPU的几个技巧
- 如何高效的使用内存
- DOS下内存的配置
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- XP/win2003下发现1G的内存比512M还慢的解决方法
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C语言内存对齐实例详解
- C++变位词问题分析