#include
using namespace std;
int yzs=1;
long long x[yzs];
int main(){
return 0;
}
为什么会编译不过
foo.cc:4:15:error size or array'dh'is no an integral constant-expression
4|long long x[yzs];
^

9 comments

  • @ 2023-1-2 10:08:40
    • 没有头文件
    • @ 2023-1-1 21:45:32

      这是你的源代码:

      #include
      using namespace std;
      int yzs=1;
      long long x[yzs];
      int main(){
      return 0;
      }
      

      有如下问题:

      1.头文件没了

      如果是Vsual C++项目,请添加头文件<iostream>

      如果使用Dev-C++进行编译,请添加头文件<bits/stdc++.h>

      2.数组定义时出现错误

      (1)最重要的,数组大小不对

      编写代码时无法使用大小为1的数组,建议将zxy改为>1的数值

      (2)如果是Visual C++项目,请这样定义数组:

      int *x=new int[zxy]//关键字new是进行动态内存申请,VC++没法使用变量定义数组

      应该这样改:

      # include <iostream>
      using namespace std;
      int zxy=3;
      long long x[zxy]//或者是`int *x=new int[zxy]
      
      int main()
      {
          //其他操作
          return 0;
      }
      
      • @ 2022-12-24 15:07:48

        1.include,应为:

        #include<bits/stdc++.h>
        //或
        #include<iostream>
        

        2.格式,应为:

        int main(){
            int yzs = 1;
            long long x[yzs];
            return 0;
        }
        
        • @ 2022-12-24 15:10:58

          code:

          #include<bits/stdc++.h>
          using namespace std;
          int main(){
              int yzs = 1;
              long long x[yzs];
              return 0;
          }
          
      • @ 2022-12-21 7:46:22

        要放主函数内(我就问一句,你开大小为1的数组用来干嘛)

        • @ 2022-12-21 13:59:49

          啊对

        • @ 2023-1-1 21:48:08

          可以不放在主函数里面,放外面是定义全局变量,所有函数都可以使用.

          (而且放外面同时清零)

      • @ 2022-12-11 11:23:17

        @hisxhst2022 你把int yxs = 1和long long x[yzs]放在主函数内,不然系统编译的时候会找不到yzs image

        • @ 2023-1-30 20:41:58

          不会吧,放在外面是全局变量,哪哪都能用

      • @ 2022-12-9 21:07:22

        @ 数组大小必须是不变量例如:

        #define ARRLEN 1005
        int a[ARRLEN];
        

        或者

        const int ARRLEN=1005;
        int a[ARRLEN];
        
        • @ 2022-12-12 20:22:13

          但是我需要数组x为全局变量

        • @ 2022-12-13 18:04:20

          @ 直接放在主程序里

        • @ 2023-1-1 21:54:55

          只有Visual Studio才那么严苛,Dev-C++没有必要.

      • @ 2022-12-9 16:55:57

        数组大小不能是变量

        • @ 2022-12-8 21:14:34

          你的头文件有问题,改成:

          #include<bits/stdc++.h>

          using namespace std;

          int yzs=1;

          long long x[yzs];

          int main(){

          return 0;

          }

        • @ 2022-12-8 20:43:18

          少了const?

          • 1