在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; 考虑地址。
(*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指针,然后指向下一个数据
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯