可能的重复:
C 中的变量声明位置
我真的不明白为什么当我在下面的代码片段中声明变量 'm' 时为什么它不起作用?我在使用它之前声明了 m 那么有什么意义?谢谢
int main(){
int a[] = {2,-4,6,47,59,-6,0};
sort(a, 7);
int m;
for(m = 0; m < 7; m++){
printf("%d ",a[m]);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我将声明放在数组上方的开始处,它就可以工作。
看起来您正在以 ANSI C 模式进行编译。在 C89 中,变量声明只允许在块的开头。
从 C99 开始,此限制已被删除。使用-std=c99它编译将允许您在任何地方声明变量。