c - 没有括号的 for 循环的绝对范围是什么?

标签 c scope

<分区>

我有一个程序使用 for 循环来检查条件语句并对数据集运行测试,其中大部分是一个可能分支的 if 语句。我的问题是带括号的 for 循环如何决定范围内和范围外的内容?例如:

我程序中的一个for循环:

for( i =0; i < (sizeof(exact_roots) / sizeof(bn_comlplex)); i++){
        if(fabs(roots[k].re - exact_roots[i].re) < 0.00001 && fabs(roots[i].im - exact_roots[i].im) < 0.00001)
            rootmatch++;
}

在这种情况下需要括号吗? for 循环会将第三行视为 for 循环的一部分还是丢弃它并给我一个编译错误?

没有括号的 for 循环的极端情况,循环如何处理它?<​​/p>

for(i = 0; i < num; i++)
    if(something)
        ....
    else //is this still considered apart of the loop?
        ....

最佳答案

for(i = 0; i < num; i++)
    if(something)
        ....
    else //is this still considered apart of the loop?
        ....

是的,它仍然是循环的一部分。整个 if () .... else ... 结构是一条语句。

但是使用牙套可以让您免除后顾之忧。有了大括号,作用域是什么一目了然。

关于c - 没有括号的 for 循环的绝对范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13995474/

相关文章:

c - C中 block 作用域和函数作用域的区别

c# - 适当的范围界定有什么好处?

Powershell "private"范围似乎根本没有用

c - 什么是 stub 例程?

c - 使用函数查找数组中的最大值

c++ - 有时无法从/proc/self/maps 获取堆栈范围

c - 如何更改 makefile 以避免对数学库中函数的 undefined reference ?

更改一些 MMU 转换表条目 - 正确的方法是什么?

pointers - Golang、指针、函数

javascript - 使用javascript从一个函数获取值到另一个函数