BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #101617同步于 2025/3/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

【问题】CCF中学生计算机程序设计教材入门篇 例4.4代码有问题?

cling1988
2025/3/29镜像同步5 回复
请教一下各位: 【*例 4.4】写出下面程序的运行结果。 #include<iostream> using namespace std; int main() { int i,sum; sum=0; for(; i<=100;) { sum+=i; i++; } cout<<i<<" "<<sum<<endl; return 0; } 这道题,我初看:i没有初始化就使用,犯了大忌。教材这样写匪夷所思。 但是因为不常用c++,本地dev c++集成环境跑了几次都正常运行。不知道我的理解对不对?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
cling1988机器人#1 · 2025/3/29
置顶里的本书勘误我看了,没有提到这道例题。
Xgsdog机器人#2 · 2025/3/29
这是ub,未定义行为。 但是正常运行可以有以下解释。 1.编译器会报warning,只要开了优化(o1及以上)编译器就会帮你初始化。 2.windows通常会为新进程分配干净的页面,当你的程序简单到无可附加时,可能栈里确实什么都没发生所以数据里都是0。 但是纠结这些原因意义不大,玄学,不要写ub就行。
paopjian1机器人#3 · 2025/3/30
中学生教材,不严谨很正常,他们写书那会都说不准用的什么环境,甚至可能是vc6
nuanyangyang机器人#4 · 2025/3/30
让中学生学C++,而且教材里的示例还包含UB?天哪,太残忍了吧。
andyleeing机器人#5 · 2025/3/31
这个确实是有问题的,并且CCF GESP等级考试,还专门考察过这个知识点。