[问题] n++问题

楼主: calee0219 (Gavin Lee)   2016-01-19 17:27:07
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
LINUX & WINDOWS
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
No
问题(Question):
请问,当我写 count = count++; 时,count 本身值不会改变,这是为什么呢?谢谢
喂入的资料(Input):
NO
预期的正确结果(Expected Output):
1
错误结果(Wrong Output):
0
程式码(Code):(请善用置底文网页, 记得排版)
#includ <stdio.h>
int main()
{
int count = 0;
count = count++;
printf("%d", count); // it will print 0??
}
补充说明(Supplement):
作者: stupid0319 (征女友)   2016-01-19 17:32:00
无义意的code不要去想他好了
作者: littleshan (我要加入剑道社!)   2016-01-19 17:36:00
置底13戒看一下
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-01-19 17:38:00
小明立志要跟昨天的小明一样好
楼主: calee0219 (Gavin Lee)   2016-01-19 18:05:00
不好意思,我看到了十三戒了,谢谢,我错了,sorry
作者: johnpage (johnpage)   2016-01-19 19:29:00
count = ++count;
作者: overhead (overhead)   2016-01-19 20:03:00
别花时间在无意义的事情上
作者: qscgy4 (有点厉害)   2016-01-20 00:47:00
WTF....这个写法真有创意!?
作者: wvwvwvwvwv (杀死丁力这个杂碎a~)   2016-01-20 17:34:00
想了一下觉得 wtf 这啥
作者: Killercat (杀人猫™)   2016-01-21 06:08:00
woo that's fantastic的意思
作者: elysium5290 (他塌塌塌塌)   2016-01-21 10:49:00
因为编译器会把这段code 当成Int tmp = countcount++Count = tmp
作者: samuelcdf (温泉龟)   2016-01-21 11:37:00
背前置和后置最无聊了, 不确定就用括号, 清楚明了上班写这种code可以怀疑是想挖坑给自己/别人跳
作者: littleshan (我要加入剑道社!)   2016-01-21 11:55:00
楼上&楼楼上:这边并不是求值先后顺序的问题而是赋值顺序未定义,即使加上括号其结果仍然是未定义
作者: bdvstg (bdvstg)   2016-01-21 16:23:00
我今天在同事那边试过 是 1 (我原本期望是 0 )环境是 VC2012 (原本想要弄恶搞程式码XDD)找时间来测测其他编译器会怎么处里好了XD
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-01-21 17:25:00
以前在学校还满常见这种写法 而且妙的是不会错想来应该很多人就此养成坏习惯 :|
作者: m54188 (强者修练生)   2016-01-23 06:56:00
只能说楼主很有创意..
作者: ronin728 (浪人)   2016-01-23 13:10:00
这自己用编译器生出组合语言来看就知道了

Links booklink

Contact Us: admin [ a t ] ucptt.com