数组指针
数组指针的问题比较绕,请问下列代码的输出。我的理解是数组指针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" 是啥意思
[解决办法]
是越界了,所以输出一个不定的值
[解决办法]
[解决办法]
[解决办法]
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]);}