首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >习题:表达式

习题:表达式

作者头像
用户6755376
发布2020-04-07 16:45:46
2920
发布2020-04-07 16:45:46
举报
#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。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机二级C语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档