5个回答
展开全部
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)
输出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)
展开全部
printf输出语句执行前, b = 3, c = 3;
执行printf语句时,(a++, b++, c++)逗号表达式执行,并且返回最后一个逗号后的c++的值作为整个逗号表达式的值,而c++返回值为3; 执行完该逗号表达式后,c的值变为4; 接着输出b;接着输出4。
因而输出的结果为3,3,4.
执行printf语句时,(a++, b++, c++)逗号表达式执行,并且返回最后一个逗号后的c++的值作为整个逗号表达式的值,而c++返回值为3; 执行完该逗号表达式后,c的值变为4; 接着输出b;接着输出4。
因而输出的结果为3,3,4.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是输出表达式的值啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询