9个回答
展开全部
“(x++,y) 是逗号表达式,取第一个子表达式的值作为整个表达式的值,故整个表达式的值为11,然后x达到12” 非也。“逗号表达式”这种说法我不置可否,逗号运算符在此处起连接作用,相当于“·····然后····”的意思,最终生效的是最后那一串代码。第一输出的是y,第二输出的也是y。上述代码中,y只有初始化,没有赋值(除了y++以外,但此处对后输出的y没有影响),因此输出结果必然是相同的。
“y++ 整个表达式的值是10,然后y达到12” 这也太说不过去了吧,y最终达到12了?
问问题的这位大概是没有自己动手操作的吧?如果是的话,这里就劝一句:尽信书不如无书,实际操作才是硬道理。
“y++ 整个表达式的值是10,然后y达到12” 这也太说不过去了吧,y最终达到12了?
问问题的这位大概是没有自己动手操作的吧?如果是的话,这里就劝一句:尽信书不如无书,实际操作才是硬道理。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得是这样的,首先逗号运算符输出的是最后一个表达式的值,这是毋庸置疑的,逗号表达式中y的值是11,(上面的回答已经解释得很清楚了,我就不做解释了),至于之后的那个y++的值,问题出在printf函数上,程序只调用了一次该函数,在这次调用中,既把y放在逗号表达式中输出第一个结果,又让y执行y++操作输出第二个结果,所以两个输出都是针对一开始初始化的y进行的,若是调用两次printf函数,y++的结果才是11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{
int x=10,y;
y=x++;
printf("%d,%d",y,y++);
return 0;
}
输出:11,10 (因为你的Y的值是X而不是X加1)
{
int x=10,y;
y=x++;
printf("%d,%d",y,y++);
return 0;
}
输出:11,10 (因为你的Y的值是X而不是X加1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样想行不行,最后printf((%d%d),y,y++);
应该先把y++算出来(++二级运算符比分隔运算符高)
y++取10,y为11
应该先把y++算出来(++二级运算符比分隔运算符高)
y++取10,y为11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询