谁能解释一下这段代码的执行结果.........
#include<iostream.h>void main()
{
int p[][3]={{1,2,3},{4,5,6},{7,8,60}};
int *q = p[1]+6;
int *t = p[1]+5;
cout<<*q<<endl;
cout<<*t<<endl;
}
*q =p[1]+6就是p[3][0],是越界了
*q = p[1]+5 就是P[2][2]没有越界
所以是60
还可以讲仔细点么?
[此贴子已经被作者于2005-11-19 21:08:07编辑过]
我试了一下,*q =p[1]+6确实是越界了,输出一个131065 (不同情况下输出可能会不一样)
*q = p[1]+5没有,输出60
*q = p[1]指向p[1][0]所在的行,加1之后为&p[1][1],加5之后为&p[2][2],加6就越界了
[此贴子已经被作者于2005-11-19 20:39:25编辑过]