c - 是否 (int i = 0; i < n; i++;) 用作 block 而不是 {int i = 0;我<n; i++;} 在 C 中有任何意义吗?

标签 c block parentheses curly-brackets

不知道问这个问题是否真的很愚蠢,因为我觉得它违背了 C 语法。但我不确定。我在几分钟前发布的一个问题中偶然发现了这一点。OP 使用类似 (int i = 0; i < n; i++) 的东西。 ,即甚至没有 ;之后i++ .

Fibonacci Series in C - The series of numbers up to a given number

但是虽然OP的台词显然是错误的,但我很想问一些我不知道的事情-以下在C中意味着什么:

(int i = 0; i < n; i++;)   // Three `;` terminated statements enclosed in ()

如下仅表示 C 中的语句 block :

{int i = 0; i < n; i++;}

我的意思是,(int i = 0,n=3; i = n; i++;) 是什么意思?在以下虚拟程序中表示:

#include<stdio.h>

int main(void)
{
(int i = 0,n=3; i = n; i++;) 
}

编辑即使来自原始问题的单行也充满了错误。所以让我独立地问这个问题:如果我们包含多个 ; ,它会做什么?一对 () 内的终止语句?如果我们将 {} 括起来它变成了一个 block ,但是()呢? ?

最佳答案

什么都没有。括号用于某些情况,例如 bool 表达式和 for 循环理解。你会得到一堆语法错误。

关于c - 是否 (int i = 0; i < n; i++;) 用作 block 而不是 {int i = 0;我<n; i++;} 在 C 中有任何意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304443/

相关文章:

c - 将字符串文字传递给 C

C++ 函数调用与堆栈上推送/弹出的新 block

c - 人们一直告诉我我正在用 ruby​​ 写 "C style iterators",我应该用其他方式来做,没有 i++ 东西

功能测试结果的 bash 命令分组

perl - 在Perl中使用无括号的子例程调用的原因是什么?

regex - Perl,从正则表达式匹配分配给变量

c - 运行程序时未获得预期值

C++ : fopen/fgets stops at random point in reading XML file

c - 0[str] 在 C 中意味着什么,其中 str 是字符串

c - 列出 block 大小的问题