printf(“%d,%d,%d\n”,(a++,b++,c++),b,c)是什么意思

为什么输出3,3,4... 为什么输出3,3,4 展开
 我来答
金色潜鸟
2015-10-29 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5714万
展开全部
int b=3,c=3;
输出1 是输出 逗号表达式 (a++,b++,c++) 的值
逗号表达式 的 值 等于 最右 一个式子 c++ 的 当前 值,就是 c 的当前值(尚未自增)
逗号表达式 里的3个式子 用的是 后缀加,所以 a,b,c 用当前值,出了逗号表达式后再 各自 增加 1。
输出2 是输出 自增 1 后 的 b 值(已自增)
输出3 是输出 c 的当前值 -- 这同编译器编译优化处理有关,它可能仍用原值,也可能已增1。若未增1,则 出了打印语句后 会自增1。
(建议,不要使用这种 带 不确定 因素的 语句。)
--
例子, MS VC++ 5.0
#include<stdio.h>
int main()
{
int a=1,b=3,c=3;
printf("%d, %d, %d",(a++,b++,c++),b,c);
return 0;
}
输出: 3, 4, 3
(不是 3,3,4)
White_MouseYBZ
2014-03-05 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6657万
展开全部

按十进制输出(a++,b++,c++)、b、c三个表达式的值,中间用逗号隔开。

朋友你恍然大悟了?我看未必。请VC++6.0下的结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dufengxqq
推荐于2017-09-20
知道答主
回答量:4
采纳率:0%
帮助的人:2.6万
展开全部
printf输出语句执行前, b = 3, c = 3;
执行printf语句时,(a++, b++, c++)逗号表达式执行,并且返回最后一个逗号后的c++的值作为整个逗号表达式的值,而c++返回值为3; 执行完该逗号表达式后,c的值变为4; 接着输出b;接着输出4。
因而输出的结果为3,3,4.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weidong3630
2015-09-24 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:322
采纳率:28%
帮助的人:79.5万
展开全部
就是输出表达式的值啊,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悉心又明快的哈士奇G
2018-01-09
知道答主
回答量:2
采纳率:0%
帮助的人:1795
展开全部
输出为3,4,4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式