C_and_CPP 板


LINE

底下转至新手十诫 ------------ 你也不可以在一个运算式(expression)中,对一个基本型态的变数修改其值, 而且还在同一个式子的其他地方为了其他目的而存取该变数的值。(其他目的, 是指不是为了计算这个变数的新值的目的)。否则,将导致未定义的行为。 错误例子: int arr[5]; int i = 0; arr[i] = i++; 正确例子: int arr[5]; int i = 0; arr[i] = i; i++; [C++程式] 错误例子: int i = 10; cout << i << "==" << i++; 正确例子: int i = 10; cout << i << "=="; cout << i++; ------------ 我不懂那两个错误例子错在哪里,我的例子: int i=10; std::cout<<i<<' '<<i++<<' '<<i<<' '<<++i<<' '<<i; --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.224.150.217
1F:→ james732:应该就是不要在同一行里面对一个变数又改又读的意思...? 02/04 18:10
2F:→ cfbbq:我知道,但是我觉得没错阿,只要不要<<i++ + i;这种就好吧? 02/04 18:13
3F:→ cfbbq:<<i++<<i;这不是一个运算是阿! 02/04 18:14
4F:推 ledia:<< 也是运算子呀 02/04 18:27
5F:推 LPH66:问题如同前几篇 i++结算的时间不确定 02/04 18:33
6F:→ LPH66:虽然顺序是由左到右 (<<是左结合) 但i++却不确定会何时结算 02/04 18:33
7F:推 StubbornLin:http://0rz.tw/d74Qx 02/04 19:17
8F:→ cfbbq:我的疑问是:cout<<i++<<i;跟cout<<i++;cout<<i;似乎等於? 02/04 19:45
9F:→ akasan:表面上一样而已cout<<i++;cout<<i;会保证其求值顺序 02/04 20:14
10F:→ akasan:cout<<i++<<i;则是无法确定到底是i先求值还是i++先求值 02/04 20:15
11F:→ cfbbq:<<是左结合,可以保证上面的楼上的i++先求值? 02/04 20:22
12F:推 LPH66:求值归求值 问题在於i什麽时候+1 02/04 21:24
13F:→ LPH66:後面的写法在第一个;时确定i已经加1了 02/04 21:24
14F:→ LPH66:前面的写法则要到那条的;才会确定i已经加1 02/04 21:25
15F:→ LPH66:但这却是在前式後面的 i 求值之後 02/04 21:25
16F:→ LPH66:至於此时的 i加1 和 後面的i求值 这两件事是不确定先後的 02/04 21:26
17F:→ LPH66:(顺带一提, 某些compiler因为方便实作的关系 02/04 21:26
18F:→ LPH66: 左结合的东西会实作成每个operand是反过来求值 02/04 21:27
19F:→ LPH66: 至於是不是一定反过来求则一样是未规定) 02/04 21:27
20F:推 LPH66:噢我忘了 overloaded operator 等於 function call...@_@ 02/04 21:37
21F:→ LPH66:所以下下篇是对的 这里刚好是特例 前面的i++会在後面i前结算 02/04 21:38
22F:推 StubbornLin:结合的顺序不代表赋值(evaluate)的顺序 02/04 21:49
23F:→ akasan:无聊去测一下...cout << i++ << i; GCC跟VC一样是12 02/05 14:56
24F:→ akasan:cout << i << i++;则VC是21 GCC是11 02/05 14:57
25F:→ akasan:实测或许只代表有compiler没照标准走但写CODE还是尽量绕过 02/05 14:59
26F:→ akasan:这种模糊地带 免得哪天有BUG了还不知道怎麽一回事:D 02/05 15:00







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灯, 水草

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

TOP