当前位置:   article > 正文

error C2099: initializer is not a constant 或者error C2099:初始值设定项不是常量_error c2099: 初始值设定项不是常量

error c2099: 初始值设定项不是常量

先看一道题:

#include<stdio.h>
const int a=15;
const int b=a+15;

void main()
{
 printf("%d\n",b);

}
很有意思哟:在.c文件中报的是和你一样的,初始值设置不是常量,但在.cpp中可以,结果输出30
改成这样就行
#include<stdio.h>


void main()
{   const int a=15;
    const int b=a+15;
 printf("%d\n",b);

}
因为c编译器不支持函数外动态声明变量和分配空间,如果要必须是常量值,例如下面也不行,只要放到函数中就行
#include<stdio.h>

int c=16;
int d=c;
void main()
{   const int a=15;
    const int b=a+15;
 printf("%d\n",b);

}

同样的下面也是

#include <stdio.h>
#include <malloc.h>
#define SIZE 4

 float *p=NULL;
 p=(float *)malloc(SIZE*sizeof(float));

int main()
{
 int i=0;

 for(i=0;i!=SIZE;++i)
  p[i]=99;
 for(i=0;i!=SIZE;++i)
  printf("%f\n",p[i]);

 return 0;
}

 

要改成下面这样:

 

 

#include <stdio.h>
#include <malloc.h>
#define SIZE 4

 

int main()
{
 int i=0;
 float *p=NULL;
 p=(float *)malloc(SIZE*sizeof(float));
 for(i=0;i!=SIZE;++i)
  p[i]=99;
 for(i=0;i!=SIZE;++i)
  printf

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/49775
推荐阅读
相关标签
  

闽ICP备14008679号