错误:const类型'const char'的对象的默认初始化

时间:2015-05-20 01:16:02

标签: c

我收到此错误 - 错误:const类型'const char'

的对象的默认初始化

我的代码在c中,错误在我的.h文件中..这就是代码看起来是错误的

const char *c2ptr[37]={ 0, 4, 8,11,14,16,18,20,23,25,
           27,29, 3,31,34,37, 3, 3,39,44,
           48,51,54,57,60, 3,62,65, 3,68,
           72,75, 3,77,79,81,84},
    ch,inif,*fname,
    comf[4]={ 7, 8, 9,13};

所以...错误全部弹出ch,inif,* fname ...它是否与它们不是数组的事实有关?据我所知这是合法的。

2 个答案:

答案 0 :(得分:2)

您的代码声明了四个变量:

  • c2ptr
  • 类型的数组const char*
  • ch
  • 类型的常量char
  • inif
  • 类型的常量char
  • fname
  • 类型的变量const char*
  • comf
  • 类型的常量数组char

首先,c2ptrconst char*(字符串)的数组,但您的代码会将其初始化为int{ 0, 4, 8, 11, ... }的列表。

其次,您的变量chinif是常量,但尚未为它们分配值。由于不能更改常量变量,因此必须在声明中为它们分配值。 (这可能是给你错误的原因。)

答案 1 :(得分:1)

您为const char *指针声明了数组,并使用int对其进行了初始化,也许您的意思是

static const char *c2ptr[37] = {
        "0",  "4",  "8", "11", "14", "16", "18", "20", "23", "25",
       "27", "29",  "3", "31", "34", "37",  "3",  "3", "39", "44",
       "48", "51", "54", "57", "60",  "3", "62", "65",  "3", "68",
       "72", "75",  "3", "77", "79", "81", "84"
   };