首页 新闻 会员 周边 捐助

关于*pr++ 和 ++*pr

0
悬赏园豆:20 [已解决问题] 解决于 2013-11-14 18:21

为什么 ++*pr就可以改变p的值呢.

我对c不懂..似乎是i++  和 ++i  这个经典的问题

请前辈指教.多谢

sw90的主页 sw90 | 初学一级 | 园豆:84
提问于:2013-11-14 13:38
< >
分享
最佳答案
0

从优先级上:

*pr++等价于//*(pr++)

++*pr;等价于++(*pr)

pr是指向指针的指针,所以第二个改变的是指针p的地址;第一个改变的是*pr的值。

指针这货好绕,特别是多级指针。

收获园豆:20
幻天芒 | 高人七级 |园豆:37205 | 2013-11-14 14:05

请问  是不是取地址符 * 和 自增符号++ 的优先级相同?

我去看了下c语言的优先级,这种情况要怎么看呢..从右到左?

诶..看来我书还是读得不够啊...

sw90 | 园豆:84 (初学一级) | 2013-11-14 14:14

谢谢前辈啦  我去认真看了   是从右像左  比如  a = b =c ;   =的优先级是一样的,结合方法是由右向做

所以是  b =c ; a = b;

* 和 ++ 的优先级 也是一样的,结合方式也是由右向左 

所以

*pr++ 等价于  *(pr++)

++*pr  等价于  ++(*pr)

不知道有没有理解错....望指教..继续学习....

sw90 | 园豆:84 (初学一级) | 2013-11-14 14:29

@阿利是傻子:优先级,百度抄的:

( )  [ ]  ->  .    从左至右
    !  ~  ++  --  (类型) sizeof
+  -  *  &    从右至左

    *  /  %    从左至右
    +  -    从左至右
    <<  >>    从左至右
    <   <=   >  >=    从左至右
    ==  !=    从左至右
    &    从左至右
    ^    从左至右
    |    从左至右
    &&    从左至右
    ||    从右至左
    ?:    从右至左
    =  +=  -=  *=  /=  %=  &=  ^=
|=  <<=  >>=    从左至右

 

幻天芒 | 园豆:37205 (高人七级) | 2013-11-14 15:46

@幻天芒:  谢谢

sw90 | 园豆:84 (初学一级) | 2013-11-14 18:21

@阿利是傻子:不客气,你玩C? 

幻天芒 | 园豆:37205 (高人七级) | 2013-11-14 18:50

@幻天芒: 是的.初学者  嘿嘿嘿 正在努力学习~~

sw90 | 园豆:84 (初学一级) | 2013-11-15 09:56

@阿利是傻子: 好样的!加油!我玩C#!

幻天芒 | 园豆:37205 (高人七级) | 2013-11-15 13:08
其他回答(1)
0

指针 你传的是地址 相当于c# ref 或者out

wolfy | 园豆:2636 (老鸟四级) | 2013-11-14 13:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册