这是一个C程序,其中没有包含头文件,也有不需要的花括号,它没有给出任何错误。为什么?
int main(){
int k;
{
int k;
for (k=0;k<10;k++);
}
}
答案 0 :(得分:1)
此代码中没有“不需要的括号”。有一个匿名块,这不是错误。实际上,它是规范所允许的。
您的变量k
在主作用域中定义,但随后在匿名块中被遮盖。
int main() {
int k = 0;
{
int k = 1;
// do more stuff with k
}
// k is still 0 here.
}
当我使用C语言进行编程时(大约1000年前),我会为团队中尝试使用此技巧的开发人员说一些严厉的话。