执行结果:
说明:*p++先计算*p将*p的值输出后p自增1
所以在第二个printf中打印的是a 的值
*p--先取指针p指向的值,再将指针p自减1
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = &a ;
printf("%d\n",*p++);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:*p--先计算*p将*p的值输出后p自减1
所以在第二个printf中打印的是a[0]的值
(*p)++ 先取指针p指向的值(以p为内存地址的值),再将该值自增1
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",(*p)++);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:p = a;
*p = a[0];
*(p)++ = a[0] + 1;
但是因为i++是先参与运算后自增1
所以第一个printf()输出的是*p的值1
第二个Printf()输出的是*p+1的值 2
(*p)-- 先取指针p指向的值(以p为内存地址的值),再将该值自减1
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",(*p)--);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:p = a;
*p = a[0];
*(p)-- = a[0] - 1;
但是因为i++是先参与运算后自增1
所以第一个printf()输出的是*p的值1
第二个Printf()输出的是*p-1的值 0
*++p先将指针p自增1(此时指向第二个元素) *操作取出该值
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*++p)
return 0;
}
执行结果:
*--p先将指针p自减1(此时指向第一个元素) *操作取出该值
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = &a ;
printf("%d\n",*--p);
return 0;
}