C语言 for 循环后面的大括号问题
之前在Java里也遇到过,潜意识里一直认为 for 循环的后面只要代码缩进格式正确,那么 for 语句后面相应代码都是在 for 循环的作用域中的,其实不然。
比如今天在写哈希表的时候,下面的代码:
1 for (i = 0; i < H->TableSize; i++) 2 H->Cells[i].Info = Empty; 3 H->Cells[i].Data = 0; 4
代码的作用是初始化哈希表的数据,结果编译运行的时候给我报了错,经过调试发现少加了括号。特此,记录防止遗忘。
1 for (i = 0; i < H->TableSize; i++) { 2 H->Cells[i].Info = Empty; 3 H->Cells[i].Data = 0; 4 }
这样就对了。
C语言 for 循环有无大括号的区别:
有大括号:每次循环都执行大括号里面的代码;
无大括号:只执行 for 循环后面的一行代码。
另:Java里的 for 循环语句语法和 C 相同。