C语言中,指针的问题

1.*px++*(px++)(*Px)++有什么区别????2.还有运算符的优先级顺序,书上说有到关联性,++,--,!之类的是从右到左;*,/,%,+,-之类的是从左到... 1.*px++ *(px++) (*Px)++ 有什么区别????
2.还有运算符的优先级顺序,书上说有到 关联性,++,--,!之类的是从右到左;*,/,%,+,-之类的是从左到右。这说的关联性是什么???是不是指运算顺序???
3.一元加是什么意思????一元加 + 和 加法 + 的区别是什么???
展开
 我来答
zjfaok
2014-01-10 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1546万
展开全部
  1. *px++等价于*(px++),跟(*Px)++ 完全是两种运算。很令人遗憾的是*(px++)不等同于px++;
    *p;,因为后置++操作的效果是在当前子表达式结束(更准确的术语是“顺序点“sequence point)时生效,*(px++)实际上同义于*px;px=px+1

  2. 这个名词翻译成“结合性”的比较多吧。结合性影响的仅限于隐式加括号的位置,例如“前置++,--,!等运算符的的结合性是从右到左”就表示++++a隐式加上括号后等同于++(++a),即括号总是加在靠右的位置;*,/,%,+,-之类的运算符的的结合性是从左到右,就表示 a*b*a隐式加上括号后等同于(a*b)*c。结合性跟运算顺序是毫无关系的,这是极容易造成误解的地方

  3. 就是正号,例如表达式“+9”中的+就是一元的

追问
那*px++   中是不是和++   和   *这两个运算符的优先级有关系???可++  和*  的优先级是等同的啊。不好理解,也不好记啊,给我个方法吧。
追答
区分前置++和后置++,二者的优先级不同,而后置++的行为略难以理解。事实上后置++的优先级高于前置++,前置++的优先级和间接引用运算符 * 相同。

最重要也最不好理解的地方就是 ”结合性跟运算顺序是毫无关系的“ ,即使教科书也未必讲的清楚,但只有理解这一点才能理解代码的行为。
也许_没有_也许
2014-01-10 · 超过11用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:21.4万
展开全部
1、
*px++相当于
px++;
*p;

*(px++)相当于*px++,也就是同上

(*px)++相当于*px;
然后px里的内容++

总结:
*px++是使指针变量p本身增1。*px++与*(px++) 没有区别(*px)++是使指针所指的存储单元的内容增1。

2、关联性叫结合性,表示这个运算符在没有括号的前提下是从右向左算的,单目运算符都如此
3、一元加可能就是把加号当作正负号了,这个名词没听过,可能就是指单目运算符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我还是曾经那个猪脑没有一丝丝改变
2014-01-10 · 超过14用户采纳过TA的回答
知道答主
回答量:177
采纳率:0%
帮助的人:32.8万
展开全部
值加加,指针加加,值加加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式