gpt4 book ai didi

c++ - C for 循环的实现方式与其他语言不同?

转载 作者:IT老高 更新时间:2023-10-28 21:35:04 26 4
gpt4 key购买 nike

我在 Knuth 的“计算机编程艺术”的评论中读到以下内容:

“非常‘实用性’意味着想成为 CS 专业的学生必须学习 Kernighan 在设计 C 时的错误,尤其是臭名昭著的事实,即 for 循环重复评估 for 条件,它重复 while 并且无法匹配大多数其他实现 for 循环的语言。”

( http://www.amazon.com/review/R9OVJAJQCP78N/ref=cm_cr_pr_viewpnt#R9OVJAJQCP78N )

这家伙在说什么?你怎么能实现一个 for 循环,而不仅仅是 for 循环的语法糖?

最佳答案

考虑一下:

for i:=0 to 100 do { ... }

在这种情况下,我们可以将最终值 100 替换为函数调用:

for i:=0 to final_value() do { ... }

... final_value 函数只会被调用一次。

然而,在 C 中:

for (int i=0; i<final_value(); ++i) // ...

... final_value 函数将在循环中的每次迭代中被调用,因此更详细的做法是一个好习惯:

int end = final_value();
for (int i=0; i<end; ++i) // ...

关于c++ - C for 循环的实现方式与其他语言不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/229671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com