C语言中,指针的问题
1.*px++*(px++)(*Px)++有什么区别????2.还有运算符的优先级顺序,书上说有到关联性,++,--,!之类的是从右到左;*,/,%,+,-之类的是从左到...
1.*px++ *(px++) (*Px)++ 有什么区别????
2.还有运算符的优先级顺序,书上说有到 关联性,++,--,!之类的是从右到左;*,/,%,+,-之类的是从左到右。这说的关联性是什么???是不是指运算顺序???
3.一元加是什么意思????一元加 + 和 加法 + 的区别是什么??? 展开
2.还有运算符的优先级顺序,书上说有到 关联性,++,--,!之类的是从右到左;*,/,%,+,-之类的是从左到右。这说的关联性是什么???是不是指运算顺序???
3.一元加是什么意思????一元加 + 和 加法 + 的区别是什么??? 展开
3个回答
展开全部
*px++等价于*(px++),跟(*Px)++ 完全是两种运算。很令人遗憾的是*(px++)不等同于px++;
*p;,因为后置++操作的效果是在当前子表达式结束(更准确的术语是“顺序点“sequence point)时生效,*(px++)实际上同义于*px;px=px+1这个名词翻译成“结合性”的比较多吧。结合性影响的仅限于隐式加括号的位置,例如“前置++,--,!等运算符的的结合性是从右到左”就表示++++a隐式加上括号后等同于++(++a),即括号总是加在靠右的位置;*,/,%,+,-之类的运算符的的结合性是从左到右,就表示 a*b*a隐式加上括号后等同于(a*b)*c。结合性跟运算顺序是毫无关系的,这是极容易造成误解的地方
就是正号,例如表达式“+9”中的+就是一元的
追问
那*px++ 中是不是和++ 和 *这两个运算符的优先级有关系???可++ 和* 的优先级是等同的啊。不好理解,也不好记啊,给我个方法吧。
追答
区分前置++和后置++,二者的优先级不同,而后置++的行为略难以理解。事实上后置++的优先级高于前置++,前置++的优先级和间接引用运算符 * 相同。
最重要也最不好理解的地方就是 ”结合性跟运算顺序是毫无关系的“ ,即使教科书也未必讲的清楚,但只有理解这一点才能理解代码的行为。
展开全部
1、
*px++相当于
px++;
*p;
*(px++)相当于*px++,也就是同上
(*px)++相当于*px;
然后px里的内容++
总结:
*px++是使指针变量p本身增1。*px++与*(px++) 没有区别(*px)++是使指针所指的存储单元的内容增1。
2、关联性叫结合性,表示这个运算符在没有括号的前提下是从右向左算的,单目运算符都如此
3、一元加可能就是把加号当作正负号了,这个名词没听过,可能就是指单目运算符
*px++相当于
px++;
*p;
*(px++)相当于*px++,也就是同上
(*px)++相当于*px;
然后px里的内容++
总结:
*px++是使指针变量p本身增1。*px++与*(px++) 没有区别(*px)++是使指针所指的存储单元的内容增1。
2、关联性叫结合性,表示这个运算符在没有括号的前提下是从右向左算的,单目运算符都如此
3、一元加可能就是把加号当作正负号了,这个名词没听过,可能就是指单目运算符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
值加加,指针加加,值加加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询