首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C-增量不更新变量值

C-增量不更新变量值
EN

Stack Overflow用户
提问于 2020-01-26 06:37:56
回答 6查看 176关注 0票数 3

我正在编写一个简单的C程序,但遇到了一些困惑。代码如下:

代码语言:javascript
运行
复制
int main(void) {
  int i, j, k;
  i = 3;
  j = 4;
  k = 5;

  printf("%d ", i < j || ++j < k);
  printf("\n");  // LINE 1

  printf("%d %d %d", i, j, k);  // LINE 2

  return 0;
}

在上面的程序中,变量j从4开始。然后在第1行的printf语句中,我们将j的值递增1(++j = 5)。

所以从理论上讲,我假设当j在printf(第2行)中打印时,它会打印为5,因为我们在第1行对j进行了递增。但是,每次我运行代码时,第2行都会打印j的原始值,它是4,而不是5。

我是不是漏掉了什么?

EN

Stack Overflow用户

发布于 2020-01-26 08:13:26

这是学习“什么是短路评估”的一个很好的例子。在上面使用的布尔表达式(i

简而言之,|和||的区别是|考虑这两个条件是否为真。但是|| nevwr如果第一个条件为真,则考虑或处理第二个条件,并跳到下一行。

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59914018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档