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

数组指针解决方法

2012-04-19 
数组指针数组指针的问题比较绕,请问下列代码的输出。我的理解是数组指针B指向Test2指针,(*B)[0],(*B)[1],(*

数组指针
数组指针的问题比较绕,请问下列代码的输出。我的理解是数组指针B指向Test2指针,(*B)[0],(*B)[1],(*B)[2]分别为数组中的1,2,3,但是(*B)[3]是不是越界了?为什么还有输出呢?请教各位!

C/C++ code
int Test2[3] = {1,2,3};int (*B)[3];B = &Test2;cout<<(*B)[3]<<endl;


[解决办法]
围观 貌似越界
[解决办法]
去理解下"undefined behavior" 是啥意思
[解决办法]
是越界了,所以输出一个不定的值
[解决办法]
探讨

去理解下"undefined behavior" 是啥意思

[解决办法]
探讨
引用:
去理解下"undefined behavior" 是啥意思

但是每次都输出1啊

[解决办法]
6楼说的很好,呵呵,学习了
[解决办法]
int (*B)[3];
这是指向数组的指针么
[解决办法]
应该是越界了吧
[解决办法]
int Test2[3] = {1,2,3};
int (*B)[3]; -------B是指向3个int型构成的数组的指针,
B = &Test2; ----将B指向Test2
cout<<(*B)[3]<<endl; ----- cout << Test2[3] << endl;越界


[解决办法]
首先你的数组是一位数组,而你貌似定义的是二维数组,然后就完全看不懂了
[解决办法]
C/C++ code
#include<stdio.h>int main(){    int Test2[3] = {1,2,3};    int (*B)[3];    B = &Test2;    printf("%d",(*B)[3]);} 

热点排行