c语言指针简单问题
#include "stdio.h"int main ()
{
int a={5,4,3,2,1},*p,i;
p=a;
printf ("%d\t%d\t%d\n",a,*p,*(p+2));
p++;
printf ("%d\t%d\n",*p,a);
return 0;
}
为什么第二次的*p打印出来是4不是6?? p=a后*p值为a=5 , p++后 *p值是a=4 , 不是 a+1=6. p是指针,是指针位置加一不是值加一 p++ 代表p指向地址加1,而不是*p所代表的值加1,p代表的地址是&a(也就是a的地址),p++后,指向的是&a,所以现在取p所指地址里的值就是4(也就是a)
页:
[1]