相关疑难解决方法(0)

在C中,为什么多个声明适用于全局变量而不适用于局部变量?

在下面的代码中,为什么多个声明(和一个定义)适用于全局变量x,而不适用ymain()函数内部的局部变量?它显示以下2个错误:

1)没有联系的'y'重新声明

2)之前的'y'声明就在这里

为什么它显示局部变量但不是全局变量的错误?不仅是我的书,而且本论坛的以下2个链接清楚地表明我们可以多次声明一个变量(尽管只定义一次).

link1 link2

并且请注意解释第一个错误"没有链接"的部分是什么,"没有连接的'y'的重新声明"是什么意思?什么联系和谁?将局部变量链接到哪里?

    #include<stdio.h>

    int x;
    int x;
    int x=303;

    int main(void)
    {

      int y;
      int y;
      int y=776;   //Works fine if above 2 declarations are removed!!

      printf("The value of x is %d,and of y is %d",x,y);

    }
Run Code Online (Sandbox Code Playgroud)

c

10
推荐指数
2
解决办法
9743
查看次数

在main之后声明的变量是否可能具有文件范围?

运行此代码后:

#include <stdio.h>
int x;
int main(void)
{
    printf("%d\n",x);
    return 0;
}
int x=5; 
Run Code Online (Sandbox Code Playgroud)

我预计输出应该是0.由于程序的顺序控制结构int x;应首先执行然后0打印,最后int x=5;应该执行.但它正在提供输出5.

是怎样的程序访问5xprintf

c scope control-structure

4
推荐指数
1
解决办法
108
查看次数

标签 统计

c ×2

control-structure ×1

scope ×1