C语言中关于指针的一点问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:45:41
++*p这个运算结果是什么呢?比如p里存的是2,那结果是3吗?*p++又是什么呢?到底是先*呢还是先++呢?谢谢高手指点~~

*p++ * ++两个符号是同级运算 所有从右往左开始 p所储存的地址先++ 后输出p指向地址里面的内容

++*p,若p所指向的内存单元里存放的是数值 2 ,那个结果就是 3.
*p++的结果就不好说了,但可以肯定的是先*后++。如果*p++单独成一条语句的话,就是
*p++; //那么结果就是3
如果*p++是在一个表达式里,那结果就很难讲了。

因为两个运算符优先级相同,而它们的结合性是从右到左.所以要先求*p.LZ你有一点说错了.p存的不是值.p存的是地址.你可以说p指向的变量值是2.这里说明下.我们再说回刚才的问题.因为p存的是地址.而*p是求这地址代表哪个变量的值.得到值后.等于2.最后进行递增运算.加上1.等于3;所以LZ.你说的是对的.

++*p是P指向的值运算前自加1.*P++是指针后移。好久没碰C,好像是这样。

好久没碰C了。。。忘记了。。。

++*p,如果p所指向的内存单元里存放的是数值 2 ,结果就是 3.等价于++(*p)