黑马程序员技术交流社区
标题:
C语言题的自增++
[打印本页]
作者:
fengjiequlada
时间:
2015-11-5 00:14
标题:
C语言题的自增++
main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,++y),z+2);
}
输出结果为什么是'3,3'呢
逗号表达式要求是以第N个表达式的值为准,那么
(++x,++y)的值为4,但与答案矛盾吧!
作者:
fenxite
时间:
2015-11-5 00:18
答案是++y和z+2的值吧,应该是这样,你不信可以修改一下数值看看检验一下,好象是压栈的原理,先进后出,z+2最后进去,输出反而在前面.
作者:
yufang1993
时间:
2015-11-5 00:23
运算里有(a,b)这种运算么?
作者:
liulunjiang
时间:
2015-11-5 11:13
运行结果错啦,是43
作者:
craneteng
时间:
2015-11-5 11:40
你用Xcode运行下 答案是4,3
作者:
夏夏天阳
时间:
2015-11-8 23:07
结果是4,3,这个你应该算错了
作者:
叶良辰
时间:
2015-11-9 14:28
你好,我在c.free上运行结果为4 3。4为++y的值 3为z+2的值 逗号是输出最右边的
(++x,++y) 这叫逗号表达式,里面含2个表达式,表达式的最终值用最后一个表达式的结果。逗号表达式的最终值 用最后一个表达式的结果, 就是4。z+2的值为3.
作者:
wkop
时间:
2015-11-9 23:51
我感觉答案应该是4,3。主要考察逗号表达式与自增运算:1:逗号表达式的值取括号里最后一个表达式的值;2、++y,y先自增再被使用。个人见解,若疑议共同讨论
作者:
Tiffany2015
时间:
2015-11-10 00:03
fenxite 发表于 2015-11-5 00:18
答案是++y和z+2的值吧,应该是这样,你不信可以修改一下数值看看检验一下,好象是压栈的原理,先进后出,z+2最后 ...
还可以,看看还是有用的
作者:
马尔代夫的日出
时间:
2015-11-25 22:00
不错...................
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2