gpt4 book ai didi

c - goto 语句的行为

转载 作者:行者123 更新时间:2023-11-30 21:16:23 29 4
gpt4 key购买 nike

#include<stdio.h>

int main() {

int i;
goto l;

for(i = 0; i < 5; i++) {
l:printf("Hi\n");
}

return 0;

}

上面的代码给出了三倍的输出 Hi 。我不知道这是怎么发生的,请解释一下。如果我将值从 5 减少到 3,则仅打印一次 Hi。

最佳答案

您的代码显示 Undefined Behavior 。这是因为当程序执行到goto时语句时,程序的执行会跳转到for的主体内部。循环,从而跳过 for 的初始化部分环形。因此,i未初始化,并且包含“垃圾值”。

附注:Using goto s are considered to be bad practice因为它使阅读/维护代码变得更加困难。

关于c - goto 语句的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27842921/

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