【问题标题】:Increment the content of a pointer增加指针的内容
【发布时间】:2017-08-27 13:21:26
【问题描述】:

如果xy 是指向同一个变量变量的指针, *x++=*y++ 是什么意思?

int a,*x,*y;
*x++=*y++;

我预计会出现错误,但事实并非如此

【问题讨论】:

标签: c pointers


【解决方案1】:

这个表达式类似于

*x = *y;
x++;
y++;

您在*x++ = *y++ 中看到的运算符将根据C operator precedence 规则进行评估。增量++ 运算符的优先级高于取消引用*但是因为我们有一个后增量,操作将在赋值后执行。

【讨论】:

  • 是运营商的优先级问题吗?
  • @HiruniNimanthi 我添加了关于优先评估的解释。
  • 请注意,C 中没有 运算符优先级 这样的东西。只有一种语法可以推导出优先顺序,但有一些限制。除此之外,正确,*x++ 等价于*(x++)
猜你喜欢
  • 2015-10-07
  • 2013-06-30
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 2020-12-12
  • 2012-01-02
相关资源
最近更新 更多