为什么c语言“在函数内的复合语句中定义的变量在本函数范围内有效”是错的,那这样的话,如果我在main函数的if语句中定义一个变量i,那这个i只在if内有效吗
for (int i = 0; i < 10; i++) // 变量 i 的作用域在 for(){ 花括号内 }
{
printf("%d ", i);
}
printf("%d ", i); // 这里再输出 i ,错误提示变量 i 未定义。
对,只有在函数开头定义的变量才是在本函数范围内有效,在if、for这些语句里面定义的变量只在里面有效,一旦if结束就被释放了