*(p++)和(*p)++有什么不同,(*p)++指的是什么。

*(p++)和(*p)++有什么不同,(*p)++指的是什么。
2025-02-26 09:18:42
推荐回答(5个)
回答1:

*p是指一个指针,它等于一个数据的地址,如定义 int a【10】,*p; p=&a(即等于p=&a[0]);
*(p++),1.是指先运算(p++),先将p指向下一个指针(一般用于数组指针),即p=&a[1];
2.再运算*(p++),即*(&a【1】),就是等于a【1】;
而(*p)++,就是先计算*p,*p=a[0],再计算 a【0】++;
(*p)++就是将P所指的数据加1;即a[0]=3;
(*p)++==4;

建议你可以去多复习下
i++
指针的概念

回答2:

  *p表示指针,意为取地址为p的内存中的值
  *(p++)先执行p++(自加1)操作,取出的是地址为p++的内存的值
  (*p)++先执行*p操作,即先取出地址为p的内存中的值,然后再将取出值++(自加1)

回答3:

1. *(p++)表示对P所指向的对象进行操作(读或者写), 之后再把指针+1,即完成之后,P应该指向下一个该类型的对象。
2. (*p)++表示对P所指向的当前对象进行++操作,即其对象值+1。

回答4:

*(p++)表示取p所指单元的值,再使p指向下一单元;
(*p)++表示取p所指单元的值,再使p指单元的值加1。

回答5:

*(p++)是把指针的地址+1
(*p)++是把指针指向的数值+1
int b[3] = {0,8,6};
int *p = b;
*(p++) == b[1] == 8;
(*p)++ == b[0]++ == 1;