相关疑难解决方法(0)

哪里可以而且不能在C中声明新变量?

我听说(可能来自老师)应该在程序/函数之上声明所有变量,并且在语句中声明新变量可能会导致问题.

但后来我正在阅读K&R,我发现了这句话:"变量的声明(包括初始化)可能会在左括号后面引入任何复合语句,而不仅仅是开始函数的语句".他举了一个例子:

if (n > 0){
    int i;
    for (i=0;i<n;i++)
    ...
}
Run Code Online (Sandbox Code Playgroud)

我玩了一下这个概念,它甚至可以用于数组.例如:

int main(){
    int x = 0 ;

    while (x<10){
        if (x>5){
            int y[x];
            y[0] = 10;
            printf("%d %d\n",y[0],y[4]);
        }
        x++;
    }
}
Run Code Online (Sandbox Code Playgroud)

那么当我不允许声明变量时呢?例如,如果我的变量声明不在开括号之后呢?像这儿:

int main(){
    int x = 10;

    x++;
    printf("%d\n",x);

    int z = 6;
    printf("%d\n",z);
}
Run Code Online (Sandbox Code Playgroud)

这可能导致麻烦,具体取决于程序/机器吗?

c declaration

73
推荐指数
1
解决办法
6万
查看次数

标签 统计

c ×1

declaration ×1