main() {intx,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z);} 请高手详细解答为什么
4个回答
展开全部
x=y=1;
x=1;y=1;
z=x++,y++,y++;
z=x++;y++;++y;
z=x;x++;y++;++y;
z=x++,y++,++y;是一个逗号表达式;逗号的运算优先级是最低的,所以先运算z=x++;
而逗号运算式是从左向右算的也就是说z=x++,y++,++y;这个整体表达式其实就是++y当然与本题无关
x=1;y=1;
z=x++,y++,y++;
z=x++;y++;++y;
z=x;x++;y++;++y;
z=x++,y++,++y;是一个逗号表达式;逗号的运算优先级是最低的,所以先运算z=x++;
而逗号运算式是从左向右算的也就是说z=x++,y++,++y;这个整体表达式其实就是++y当然与本题无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=y=1;
x=1,y=1
z=x++,
z=2
y++,
y=2
++y;
y=3
所以
x=2,y=3,z=1
x++的意思就是
x=x+1
先用后加
++y的意思也是y=y+1
但是先加后用,
你这里没有区别,如果有循环的话有会看出区别了
x=1,y=1
z=x++,
z=2
y++,
y=2
++y;
y=3
所以
x=2,y=3,z=1
x++的意思就是
x=x+1
先用后加
++y的意思也是y=y+1
但是先加后用,
你这里没有区别,如果有循环的话有会看出区别了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int
x,y,z;
x=y=1;
z=x++,//z为1,x为2
y++,//y为2
++y;
//y为3
printf("%d,%d,%d\n",x,y,x);
}
故输出的结果为2,3,2
注:1.z=x++,y++,++y;是一个逗号表达式
2.要理解前自加与后自加的区别
{
int
x,y,z;
x=y=1;
z=x++,//z为1,x为2
y++,//y为2
++y;
//y为3
printf("%d,%d,%d\n",x,y,x);
}
故输出的结果为2,3,2
注:1.z=x++,y++,++y;是一个逗号表达式
2.要理解前自加与后自加的区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询