读书人

数组指针解决方法

发布时间: 2012-04-19 14:36:43 作者: rapoo

数组指针
数组指针的问题比较绕,请问下列代码的输出。我的理解是数组指针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]);} 

读书人网 >C语言

热点推荐