返回首页

c语言 p++与(*p)++、*(p)三者异同?

时间:2019-09-01 来源:原创/投稿/转载作者:管理员点击: 162

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、*p++与*(p++)是等价的,表示取p所指单元的值,p指向下一单元,即p自加1。

  C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。

  而且printf的运行顺序是从右向左运行。而且右++是在整个运算表达式运算完才进行,而且右++的执行顺序是从左到右进行。而左++遇到变量就会立即增加变量的值。

  推荐于2018-03-13展开全部*p++与*(p++)是等价的,表示取p所指单元的值,p指向下一单元,即p自加1。

【责任编辑:管理员】
随机推荐 更多>>