文件范围与函数范围的数组声明

时间:2016-09-20 03:59:05

标签: c arrays

从高中开始,我学会了

  1. 每当我们声明一个变量时,就不会为变量保留空格。
  2. 每当我们声明一个变量时,编译器就不会寻找其他细节,例如变量的定义。
  3. 同样意味着除了数组之外的所有数据类型,因为它本质上是静态的,并且必须在开头指定大小。但是我面临两种情况,其中一种错误,另一种情况没有错误。

    当我在main()之外声明一个没有大小的数组时代码运行顺利但是当我更改它并将其放在main中时我得到错误,必须定义大小。

    在这两种情况下,我都声明了在任何地方都没有使用过的数组。在main()内部或外部声明变量有什么区别吗?我有点困惑,使用它逃避了我。

    声明

    之后的

    代码示例

    #include <stdio.h>
    int a, b, c, d, e;
    int bal[];
    
    int main(void) {
        printf("successful");
        return 0;
    }
    

    错误:无

    声明

    中的

    代码示例

    #include <stdio.h>
    int a, b, c, d, e;
    int main(void) {
        int bal[];
        return 0;
    }
    

    错误:

    prog.c: In function 'main':
    prog.c:5:5: error: array size missing in 'bal'
    

0 个答案:

没有答案