C中*和++那个优先级更高?

primer中说++比*的优先级高,putchar(*string++)输出string指向的值,然后在增加sting本身,如果++优先级高,不是应该指针先+1再指向值吗... primer 中说++比* 的优先级高,putchar(*string++)输出string指向的值,然后在增加sting本身,如果++优先级高,不是应该指针先+1再指向值吗?为什么是先指向在加一啊? 展开
 我来答
兔子和小强
2014-09-04 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1402万
展开全部
*string++

这个确实先运算++(++优先级高于*),string++的运算结果是把string的值存入一个临时变量tmp,然后返回tmp(或string)的值,表达式运算(putchar(*tmp))结束后再使string = tmp+1。


如果按先运算*再运算++理解,那么会先使用*string的值,之后使*string(string指向的东西)加一,而非string加一。

紫微苑
推荐于2016-01-05 · 超过60用户采纳过TA的回答
知道答主
回答量:133
采纳率:66%
帮助的人:57.5万
展开全部
<更高

一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
就着多吧 结合性:2 13 14 是从右至左 其他都是 从左至右
以上回答你满意么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-03-13
展开全部
++在后,总是在执行完这条语句再执行加1,这里的优先级只是指++是先和string结合的,而不是与*string结合
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虎姿淳于傲薇
2019-11-04 · TA获得超过3600个赞
知道大有可为答主
回答量:3079
采纳率:27%
帮助的人:384万
展开全部
两个处于同一优先级,结合方向是自右向左
其实这样只是当++在变量前面的时候才处理同一优先级,当++在变量之后时,你可以将++的优先级看成最低级的,比逗号运算符的优先级还低
PS:
先进行*p,运行完后再进行++运算,因为这个时候的++在变量后面,所以其优先级最低
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jingting111010
2017-09-24 · TA获得超过460个赞
知道答主
回答量:36
采纳率:0%
帮助的人:3.8万
展开全部
++a 和 a++ ++在前和在后是不同的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式