指针的困惑
#include <stdio.h>#include <iostream>
int main(void)
{
int *p;
int i;
int a[5]={1,2,3,4,5};
p=a;
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d ",*p++);
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d ",*(a+i));
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d ",*(p+i)); //这个循环显示不正确
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d ",*p+i); //这个循环显示不正确
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d ",*(p+i)); //这个循环显示不正确
}
printf("\n");
system("pause");
return 0;
}
后面几个显示的结果和预想的不正确,请大家帮忙看看
显示如下:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
0 2686832 116 108 7288032
0 1 2 3 4
0 2686832 116 108 7288032
请按任意键继续. . .