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

2025-03-11 04:23:12
推荐回答(5个)
回答1:

区别大了。
*p++
先返回指针p所指向的内容,然后将p指向下一个同类型变量的位置,这种用法一般用在数组里面(字符串也可以理解成数组),也就相当于指向数组中下一个元素。
*(p++)先将p指向下一个元素,然后再返回所指向元素的值。

回答2:

没有区别,这个问题涉及到运算符的优先级
其中++运算符的优先级高于*取值运算符,所以无论加不加括号都是一个效果
先地址自增1,然后再*取值

回答3:

*p++:返回p指向的数值,然后指向下一个数值
p++:返回p指针,然后指向下一个数据

回答4:

没有什么区别,本来++的优先级就比*高,*p++就表示
*(p++);
这个就相当于
*p;p++;两句的综合,先使用p指向的地址上存储的值,然后p指向下一个地址。

回答5:

一样的,++优先级比*高 ,所以先实行p++,再*p