小编Cla*_*ker的帖子

为什么 sizeof 运算符对某些表达式的工作方式不同?

我知道像x++或函数调用这样的表达式不会在 sizeof 运算符中计算。

当我运行下面的代码时,我得到了4 8 8输出。有人可以向我解释第 6、7、8 行实际发生了什么吗?

#include <stdio.h>
int main()
{
  int x=10;
  double y=10.0;
  printf("%d ",sizeof (x=x+y));    
  printf("%d ",sizeof (y=x+y));     
  printf("%d ",sizeof (x+y));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我发现如果表达式=隐式地(如预增量)或显式地(如x=x+y)包含赋值运算符,则表达式不会在sizeof运算符中求值。

我对吗?

c operators sizeof

3
推荐指数
1
解决办法
139
查看次数

标签 统计

c ×1

operators ×1

sizeof ×1