首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

计作数组的超出末端指针

2012-10-18 
计算数组的超出末端指针C/C++ code#include iostreamusing namespace stdint main(){const size_t arr_

计算数组的超出末端指针

C/C++ code
#include <iostream>using namespace std;int main(){    const size_t arr_size=5;    int arr[arr_size]={1,2,3,4,5};    int *p=arr;    int *p2=p+4;    int *p3=p+arr_size;    cout<<*p2<<' '<<*p3<<endl;    return 0; }


上面这段输出的结果是:
5 5

请问,为什么超出末端的指针解引用也是数组末端的值呢?

[解决办法]
楼主可以把数组的内容从12345换成67890试试看
[解决办法]
这个值应该是随机的吧
[解决办法]
楼主在学习溢出么? 很明显的,第二个5不是随机值。而是arr_size的值。

[解决办法]
越界的int *p3=p+arr_size值是不确定的,取决于当时那个地址的数据,而你的结果只能表明越界的那个地址正好存放的是5而已。

热点排行