永发信息网

在C语言中*p++和p++有什么区别呢

答案:6  悬赏:20  手机版
解决时间 2021-02-20 10:06
  • 提问者网友:人生佛魔见
  • 2021-02-20 04:10
在C语言中*p++和p++有什么区别呢
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-02-20 04:30
如果想写数值自增语句,应当写:
(*p)++;
------------
p++; -- 指针p地址自增1; (后加加)
*p++; -- 编译器也许不报错,但它的作用 也是 指针p地址自增1。
x = *p++; -- 在本句,++ 不起作用,x = *p; 出了本句, 指针p地址自增1, 相当执行了 p=p+1。
我觉得,*p++ 的写法不好,意思含混。
要末用 *p = *p + 1; 考虑数值。
要末用 p=p+1; 考虑地址。
全部回答
  • 1楼网友:怙棘
  • 2021-02-20 08:54
p++是后加,所以*p++是先取p的地址,然后对p的地址自动加一,p++的对p的值自动加一
  • 2楼网友:等灯
  • 2021-02-20 07:25
*p++是解引用指针,然后指针加一 (*p)++是解引用指针,并且这个解引用的值加一 一个是指针加一,一个是值加一
  • 3楼网友:北方的南先生
  • 2021-02-20 07:14
p++是对p这个变量进行自加运算 而且是在这个语句被执行后才生效 *p++指的是让指针指向变量p的内存单元的下一个内存单元
  • 4楼网友:山河有幸埋战骨
  • 2021-02-20 06:32
一样的,++优先级比*高 ,所以先实行p++,再*p
  • 5楼网友:英雄的欲望
  • 2021-02-20 05:53
*p++:返回p指向的数值,然后指向下一个数值 p++:返回p指针,然后指向下一个数据
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯