宫宸 发表于 2021-12-14 10:35:55

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??

henkuderen 发表于 2021-12-14 10:59:15

p=a后*p值为a=5 , p++后 *p值是a=4 , 不是 a+1=6.

最强废铁h 发表于 2021-12-14 11:09:49

p是指针,是指针位置加一不是值加一

ljd884497 发表于 2021-12-14 11:19:27

p++ 代表p指向地址加1,而不是*p所代表的值加1,p代表的地址是&a(也就是a的地址),p++后,指向的是&a,所以现在取p所指地址里的值就是4(也就是a)
页: [1]
查看完整版本: c语言指针简单问题