作者NCUking (中大王)
看板C_and_CPP
标题[语法] 未定义行为??
时间Wed Oct 28 21:22:58 2009
main()
{
int x=20,y=35;
x = y++ + x++;
y = ++y + ++x;
printf("%d %d\n",x,y);
}
乍看之下想回答未定义行为
http://www.allinterview.com/showanswers/5271.html
不过这网站的人讲得头头是道
我想问这算不算未定义行为?
说真的没有人会把程式写成这副德性.....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.112.18
1F:推 nowar100:这没有undefined吧 等号右边他变数只有改一次阿 10/28 21:27
2F:→ NCUking:a[i] = i++; 这种就是undefined behavior呀 10/28 21:30
3F:→ NCUking:照一楼说的 右边只有改一次呀 10/28 21:30
4F:→ nowar100:刚试了一下 应该是我错了 10/28 21:34
5F:推 VictorTom:看至底是写一个运算式中赋值两次, 那感觉还是有犯到@_@" 10/28 21:46
6F:→ NCUking:这是国内某家大公司笔试题目 用抄的连数字都没改XD 10/28 21:47
7F:推 QQ29:看了就很无奈 对了又怎样= = 不对也不代表我们程式烂阿... 10/28 21:56
8F:→ QQ29:公司就算出undefined behavior 他们搞不好还不知道呢.... 10/28 21:57
9F:推 twotwoone:不是打英文就比较头头是道吧,总而言之,C++之父说 10/28 22:07
10F:→ twotwoone:是未定义 10/28 22:07
11F:→ firose:未定义啦 = 前 ++ 或者 = 後 ++ 结果是不同的. 10/28 22:13
12F:→ firose:有些情况结果可能没有不同, 但规定是不能在 SP 间修改两次 10/28 22:13
13F:推 twotwoone:顺序点:&& || ?: , 四个运算子,及一些statement 10/28 22:14
14F:推 james732:今天也有人问我这个问题耶 好像是煎肉盘石公司的 10/28 22:22
15F:→ NCUking:不过我还是很孬不敢写这是未定义行为 ~"~ 10/28 22:31
16F:→ softwind:这样也是未定义吗? x=x++; or x=++x; or x=++x++;? 10/29 00:25
17F:推 twotwoone:assignment不是顺序点,不保证++运算子的副作用发生时机 10/29 00:30
18F:→ iamivers0n:是 10/29 00:31
19F:→ QQ29:写未定义行为 改的人搞不好不知道你在说什麽....这种题目超 10/29 00:47
20F:→ QQ29:无奈的...错的人一定很干... 10/29 00:47
21F:推 Ebergies:你不写未定义行为那代表你这题的对错看运气了 10/29 10:11
22F:→ Ebergies:而说不定主管只凭这题就可以刷掉 99% 有写数字的人 10/29 10:12
23F:推 VictorTom:不然就揣摩上意写两个版本....XD 10/29 10:28
24F:推 cplusplus:很烂 我知道哪家 我在上面写了大概是xxx 但是undefined 10/29 14:11
25F:推 flax00298:我用DEVC++写,结果过了耶... 10/29 14:42
26F:推 VictorTom:楼上, compile会过, 会有结果, 但是这结果可能随着各家 10/29 14:43
27F:→ VictorTom:compiler实作的方式不同而有差异, 所以说是未定义行为:) 10/29 14:44
28F:→ bleed1979:有次面试我写compile error还被定到爆 分明见笑登生气 10/29 14:50
29F:推 QQ29:不会error阿@@ 10/29 14:51
30F:→ bleed1979:虽然我知道答案,但打字错误就还是错 10/29 14:51
31F:→ bleed1979:我指的是某些系统大厂主管的水准令人不敢认同 10/29 14:53
32F:推 QQ29:哈 你也真敢写... 10/29 14:54
33F:推 ledia:很多面试官都主观觉得来的人能力一定比他差 10/29 15:22
34F:→ ledia:只是早进公司几年, 如果没进步的话, 也没什麽好怕的 10/29 15:23
35F:→ VictorTom:就某方面而言, 进了这样的公司也有点可怕....XD 10/29 15:29