55问答网
所有问题
void main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); } 输出的结果为什么?求详细解及思路
void main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
输出的结果为什么?求详细解及思路
举报该问题
推荐答案 推荐于2017-12-18
33
printf("%d%d\n",(++x,y++),z+2);
第一个%d输出时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3
第二个就容易了,就是输出z+2,也就是3
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/ILLII8G4R.html
其他回答
第1个回答 2017-12-17
c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60,
a的值是15。
a++表示先把a的值代入函数再令a+1,++a表示先令a+1再代入函数
不用多说了吧
第2个回答 2010-08-21
输出 33
逗号表达式的值为最右边的值,所以(++x,y++)的值为y++,等于3,因为++操作在计算之后才进行。
z+2 = 1+2 = 3
所以最终的结果为33
第3个回答 2017-12-17
输出33。z+2==3,(++x,y++)是逗号表达式,只取最后一个y++,后++取值后才执行,所以两个都是3。
相似回答
void
main()
{int
y=3,x=3,z=1;
printf(
"
%d%d
"
,(++x,y++),z+2);
此时...
答:
所以输出的是
y++
产生的结果
void
main()
{int
y=3,x=3,z=1;
printf(%d %d
\
n,(++x
答:
(++x, y++)
这整个是一个逗号表达式
,逗号
表达式的运算规则是从左往右依次计算,并返回最后一个表达式的值,所以返回输出的是y++ 这里++放在了y的后面,所以是先输出y,再进行
y=y+1
运算,所以最后是输出3 3
...输出结果:
main()int
y=3,x=3,z=1;printf(
"
%d%d
\n"
,(++x,y++),z+
...
答:
运行结果为:3 3 楼主可以在编译环境中试一下下面的程序,就知道答案的正确性了:include<stdio.h>
void main()
{ int y=3,x=3,z=1;printf("%d\n%d\n",(++x,y++),z+2);}
...
x=3
z=1;printf(
“
%d %d
\n”
,(++x,y++),z+2);
最后输出结果为3 3...
答:
前面那个3就是
(++x,y++)
的值,这是个逗号表达式,逗号表达式的值就是最后一个表达式的值,也就是(++x,y++)的值就是y++的值,y++的值就是y的当前值,是3,输出以后
,y=y+1,
y变成了4
...
main()
{int
y=3,x=3,z=1;
printf(
"
%d %d
\n"
,(++x,y++),z+2
...
答:
3 3
(++x,y++)
为逗号表达式输出的会使y++;但y++时,y还是3,等下一条语句开始才变为4
;z+2=3;
大家正在搜
相关问题
main( ) { int y=3,x=3,z=1; pr...
#include<stdio.h> main() { int...
有段C语言程序、求输出结果:main()int y=3,x=...
有如下程序 main( ) { int y=3,x=...
void main() {int y=3,x=3; x>>=...
有如下程序 main( ) { int y=3,x=3,z=...
#include <stdio.h> main( ) { i...