C++中一个疑点,关于指针

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:07:33
#include<iostream.h>
void main()
{
int g[3][2]={{1,2},{3,4},{5,6}};
int (*x)[2]=g;
x=x+3;
cout<<(*x)[0];

}
我输出的结果是 1245120 ,就是因为我的X加了3超出了范围,不知道这1245120是怎么来的,是否在不同的机器上运行的结果不同

数组越界

这个数应该是越过去的那个内存中的值吧

#include<iostream.h>
void main()
{ int line1[ ]={1,0,0}; //声明数组,矩阵的第一行
int line2[ ]={0,1,0}; //声明数组,矩阵的第二行
int line3[ ]={0,0,1}; //声明数组,矩阵的第三行
int *p_line[3]; //声明整型指针数组
p_line[0]=line1; //初始化指针数组元素
p_line[1]=line2;
p_line[2]=line3;
//输出单位矩阵
cout<<"Matrix test:"<<endl;
for(int i=0;i<3;i++) //对指针数组元素循环
{
for(int j=0;j<3;j++) //对矩阵每一行循环
{ cout<<p_line[i][j]<<" "; }
cout<<endl;
}
}