一个C++指针运算的问题,我的答案是 12 24 36 46 67 但在VC6中的答案为什么最后是 3 4 5 12 在线等,谢谢

2024-11-28 15:56:53
推荐回答(2个)
回答1:

#include
using namespace std;
int main()
{
int m[5]n[5],*px,*py,k;
px=m;
py=n;
for(k=0;k<4;k++,px++,py++)
{
*px=k;
*py=2*k;
cout<px=&m[1];
py=&n[1];
for(k=1;k<3;k++)
{
*px+=k;
*py+=k;
cout<<*px++<<" "<<*py++<return 0;


不知道你的题目是什么?反正思路不对

回答2:

我只觉得你们都错了。。
你K=0 的时候输出的值是多少?m[k-1] = m[-1];能输出多少。。
抛开循环越界的问题。。
-858993460,-858993460
0,0
1,2
2,4
-----------------------
2 3
4 6

这个是我在VC2005下面的结果。。第1组是你的地址越界。横线下面的是你的第二组循环输出。