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 相同。

posted @ 2020-03-25 16:38  模糊计算士  阅读(2210)  评论(0编辑  收藏  举报