C_and_CPP 板


LINE

i = 10; i = i++ + ++i; i是多少 答案是 22 假设是三个变数就算了 c = a++ + ++b; 还可以理解。这是同个变数 最後会看起来是 10 + 11 = 21, 21再做後增的动作。 盲点是 ++i -> i = 11; i++ -> 此时的 i 不应该是 11吗?? 应该要出来 11 + 11 = 22,最後才做 22 後增动作 为 23 才对吧..? ------------------------------------------------------------------------------ 刚参考了版友说 undefined behavior 其实我完全混乱了 1. linux gcc 可以过,表示它已定义的意思吗? 我要怎样才可以知道这是未定义的 2. x = x++; 在置底第八戒也说他是 undefined 的,这个很下意识的就是++最後做 赋值先做,最後才++,还是如果是 y = x++; 就不会有这困扰了? ------------------------------------------------------------------------------ 请问 x = x++; 为何是未定义行为,而 *p++ 这种就不属於是未定义行为???? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.68.215.61
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1535162145.A.799.html
1F:→ ggBird: ub 08/25 10:05
2F:推 Schottky: undefined behavior,出考题的是谁,叫他不用来上班了 08/25 10:12
3F:→ Schottky: 置底十三戒之第八戒,这不是你的问题,考题不能这样出 08/25 10:14
4F:→ moebear: ???????? https://i.imgur.com/IVcmBN1.png 08/25 10:14
※ 编辑: blueblueChen (219.68.215.61), 08/25/2018 10:41:41
5F:推 eye5002003: 我有写过这样的考题,一个老工程师出的 08/25 10:41
6F:→ chuegou: r1=i++; r2=++i; i=r1+r2; 我猜啦 08/25 11:43
7F:→ chuegou: 如果硬要知道为什麽是22 反组译看组语如何? 08/25 11:44
8F:推 stupid0319: 何必浪费生命在智障的问题上 08/25 12:52
9F:→ sarafciel: 未定义指的是"标准"未定义 08/25 13:27
10F:→ sarafciel: C的标准没有定义 i++ + ++i 时三个运算元的执行顺序 08/25 13:30
11F:→ sarafciel: 所以编译器在编这行的时候就是随编译器高兴的意思 08/25 13:31
12F:→ sarafciel: 编是一定可以编过 只是你换个编译器结果就不一样 08/25 13:32
13F:→ sarafciel: 子 08/25 13:32
14F:→ sarafciel: BTW 出这考题的是智障 不要理他 08/25 13:43
※ 编辑: blueblueChen (219.68.215.61), 08/25/2018 17:47:51
15F:→ blueblueChen: 那为何 x=x++叫做未定义 *p++ 就不是? 08/25 18:47
16F:推 jerryh001: 因为*p++明确知道怎麽做 08/25 19:02
17F:→ as7218: https://hackmd.io/s/Skr9vGiQm 直接看这篇吧 08/25 22:14
18F:→ blueblueChen: 我有看jserv的 blog 08/25 22:20
19F:→ blueblueChen: C 语言没规定 i++ 或 ++i 的「加 1」动作到底是在 08/25 22:20
20F:→ blueblueChen: 何时时刻执行,所以说 printf("%d\n",a++); 也会不 08/25 22:21
21F:→ blueblueChen: 知道 [+1] 是在何时进行的吗? 但从以前的经验来看 08/25 22:22
22F:→ blueblueChen: 都是先印出,再[+1] 08/25 22:22
23F:推 AstralBrain: 对, 不知道 08/25 22:33
24F:→ AstralBrain: 印出来的值是"a++"这个expression的传回值 08/25 22:34
25F:→ AstralBrain: 不是a当下的值 08/25 22:35
26F:→ sarafciel: 靠XD 翻了一下标准 如果我的破英文没有影响理解的话 08/25 23:26
27F:→ sarafciel: +1执行的时间点在99以前没定 11以後是有定的XDDD 08/25 23:27
28F:→ sarafciel: 详情见C11标准6.5.2.4 不过这篇问的东西还是UB就是了 08/25 23:32
29F:→ oToToT: 总之,没事不要这样写最保险,可读性有够低 08/26 14:41







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP