gpt4 book ai didi

c - 问题理解 C 中的 block

转载 作者:太空狗 更新时间:2023-10-29 15:51:18 24 4
gpt4 key购买 nike

我正在学习用 C 语言编程,并且我正在做一个练习,要求我编写一个程序来打印等腰三角形。

#include <stdio.h>

int main()
{
int col, row;

for(col = 0; col < 6; col++)
{
for(row = 0; row <= col; row++)
{
putchar('*');
putchar('\n');
}
}
}

此代码在一行中单独打印 (*) 21 次。因此,经过几分钟的反复试验后,我删除了内部 for 循环中的内部大括号。

#include <stdio.h>

int main()
{
int col, row;

for(col = 0; col < 6; col++)
{
for(row = 0; row <= col; row++)
putchar('*');
putchar('\n');
}
}

我终于达到了我想要的结果。

所以我的问题是:内部 for 循环的内部大括号{}如何影响结果的打印方式?为什么第一组代码本身也在一行上打印了 21 次 *?

我翻遍了我的书,找不到合理的解决方案来解释为什么内部 for 循环中的 { } 会影响输出。

最佳答案

你的工作解决方案等同于

for(col = 0; col < 6; col++)
{
for(row = 0; row <= col; row++)
{
putchar('*');
}
putchar('\n');
}

在 C 中,缩进与语句分组无关。大括号将语句组合在一起。在您原始的、不起作用的代码中,内部循环后面的大括号使大括号内的所有代码运行每个循环迭代。在上面的示例中,您可以看到大括号仅包含为 for 循环的每次迭代运行的适当表达式。

正如其他人可能注意到的那样:缩进不会告诉编译器要做什么,但您应该缩进以便直观地解释您的代码。

关于c - 问题理解 C 中的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605208/

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