习题:表达式

#include <stdio.h>     //预处理命令
int main()             //函数首部,无参
{                      //函数体
  int a=5,i=2,b;
  a=a++,++i;
  printf("%d",a);
  return 0;          //返回值
}

有以上程序,输出结果是什么?

如果将第五行加个括号,修改成下面这样:

  a=(a++,++i);

输出结果又是什么?

首先,这两个结果肯定是不一样的。第一种情况,a最终的值是6;第二种加了括号,a最终的值是3。

这里涉及到了逗号运算符,C语言运算符优先级最低的就是逗号运算符了。

所以,没有加括号的时候是先执行a=a++,再执行++i。根据逗号运算符规则,这一行整个表达式的值是++i。加了括号,括号里面这个表达式的值就是++i,最终给a赋值也就是3。

本文分享自微信公众号 - 计算机二级C语言(gh_044a0595bf44),作者:计算机二级C语言

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言入门笔记2

    我们上小学的时候都学过各种运算,如:加法运算、乘法运算、混合运算等,而运算就要用到运算符,如:+、-、×、÷等等。

    用户6755376
  • C语言位运算符

    对于更多紧凑的数据,C 程序可以用独立的位或多个组合在一起的位来存储信息。文件访问许可就是一个常见的应用案例。位运算符允许对一个字节或更大的数据单位中独立的位做...

    用户6755376
  • 2、指针与自增运算*p++

    自增自减运算是经常考容易出错的知识点,加上指针这个令人头疼的,马上有想放弃的冲动。希望看了这篇文章能有所收获。

    用户6755376
  • JavaScript运算符整理总汇(++、--、+=)

    该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数。

    德顺
  • 写了一个bug,最后却变成了feature,要不要修呢?

    事情是这样子的,前不久接到一个需求,为一个游戏开发礼包码功能 通常一款游戏运营期间会搞各种各样的活动吸引玩家,其中最常见的就是发放礼包, 玩家可以通过礼包码兑...

    用户1608022
  • 回溯法(dfs)解决0-1背包问题

    AI那点小事
  • HDU 6330--Visual Cube(构造,计算)

    Enterprise_
  • TSN技术及其在数据中心应用前景调研报告

    前言 ? ? ? 当前,新一轮技术产业革命蓬勃发展,新基建成为社会关注热点。 3月4日中共中央政治局常务委员会召开会议时指出,要加快5G网络、数据中心、工业互...

    腾讯数据中心
  • 【译】kotlin 协程官方文档(5)-异步流(Asynchronous Flow)

    挂起函数可以异步返回单个值,但如何返回多个异步计算值呢?这就是 kotlin Flows(流) 的用处了

    叶志陈
  • MediaPlayer(三)--C++ binder框架

    上一篇文章MediaPlayer--MediaPlayer基本框架没有将C++的mediaplayer binder通讯展开,这篇文章主要展开这一部分。 大概...

    小蚂蚁与大象

扫码关注云+社区

领取腾讯云代金券