|
执行结果:  说明:*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; } |