指针的 ++ 和 +1 永远一样么???
看下列程序:
main()
{
int a[5]={10,20,30,40,50};
int *p=a;
printf("sizeof(int*)=%d\n",sizeof(int*));//输出sizeof(int*)=2;
printf("sizeof(int)=%d\n",sizeof(int));//输出sizeof(int)=2;
printf("a[0]=%d,p=%d\n",p*,p);//输出a[0]=10,p=0
p++;
printf("a[1]=%d,p=%d\n\n",p*,p);//输出a[1]=20,p=0
}
///////////////
1.要是把p++换成p=p+1后面的输出结果为什么一样??
我记得指针+1就是把指针当作一个一般的数来+1的,而++是“智能”的加上sizeof(p),难道是我记错了?
至少pascal里面不是这样。
2.为什么两次输出的p都是0???