gpt4 book ai didi

C:Turbo C 编译器中 for 循环的异常行为

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:38 27 4
gpt4 key购买 nike

我知道这是一个愚蠢的问题,但我只是出于好奇才问这个问题。我刚刚在某处读到这段代码:

#include<stdio.h>
int main() {
for ( ; 0 ; )
printf("This code will be executed one time.");
return 0;
}

输出:

This code will be executed one time.

这个循环在 Turbo C 编译器中执行一次,而在 gcc 中不工作,但是这个循环怎么可能只执行一次呢?

对于这段代码在 Turbo C 编译器中的异常行为,如果有的话,你能指导我吗?

最佳答案

这是编译器中的错误。 C99 标准这样描述 for 循环:

The statement

for ( clause-1 ; expression-2 ; expression-3 ) statement

behaves as follows: The expression expression-2 is the controlling expression
that is evaluated before each execution of the loop body.
The expression expression-3 is evaluated as a void expression after each
execution of the loop body. [...]

鉴于 expression-2 的计算结果为 false,代码不应打印任何输出。

关于C:Turbo C 编译器中 for 循环的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934587/

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