*p++=9;与*++p=9;

it2025-12-05  2

代码

#include <stdio.h> #include <string.h> int main(int argc,char* argv[]) { int a[3]={1,2,3}; int *p =a; printf("%d %d %d\n",a[0],a[1],a[2]); printf("*p++\n"); printf("addr = %d\n",(int)p); *p++=9; printf("addr = %d\n",(int)p); printf("%d %d %d\n",a[0],a[1],a[2]); a[0]=1; printf("*++p\n"); p = a; printf("addr = %d\n",(int)p); *++p = 9; printf("addr = %d\n",(int)p); printf("%d %d %d\n",a[0],a[1],a[2]); return 0; }

输出

1 2 3 *p++ addr = 750212780 addr = 750212784 9 2 3 *++p addr = 750212780 addr = 750212784 1 9 3

结论

*p++=9;等价于 *p=9;p++; *++p=9;等价于 ++p;*p=9;

最新回复(0)