刘秀是皇帝吗:y=++*px于y=++px的区别

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 15:55:16
其中px=&a是一个指针变量。
我在一本书上看到y=++*px /*px的内容加上1之后赋给y [++*px相当于++(px)]*/
那y=++px是什么意思呢?
希望高手指点!
各位,你们要知道++与*(指针)的优先级别是++高,所以你们说的我都不太认同。y=++*px /*px的内容加上1之后赋给y [++*px相当于++(px)]*/ 把我给整糊涂了,照这样说,在这个表达式中,Y就是一个指针,它就是一个地址,是PX+1!那难道在y=++px中,Y就不是一个指针,它就不是一个地址吗,不是PX+1吗?这么说来两个岂不一样!

y = ++*px; 相当于 y = ++(*px);
这是把 px 指向的内容加上 1 以后赋给 y

y = ++px
是把 px 的下一单元的指向地址赋给 y

别说什么 ++ 和 * 哪个优先级高,它优先级再高也没有用,你 ++ 和 px 不是写在一起的。只有当你说 *px++ 的时候,它们的优先级才有讨论的意义。

y=++*px /* px的内容加上1之后赋给y [++*px相当于++(px)] */

这个是代码吧?

我想该是这样的吧: y = ++*px /* px所指向的内容加上1再赋给y〔++*px相当于 ++(*px) 也就是++a〕 */

这下看明白了吧?y=++px和y=++*px是完全不一样的,前面的y是个和a一样类型的变量,而后一个是一个指针变量.比如:int a[5];int *y,*px = a;y=++px; 这个时候(*y)就是指向数组第二个数的值,也就是a[1].

++*p相当于++(*p),即++a
++p是将p的值加1,即将p指向a之后的变量,一般用于数组运算

y=++px的意思就是把&a地址的下一个地址传给y

这个是什么? 太难了也