C++程序 中 too many initializers错误是咂回事

问题在于每个字符应该用单引号。字符是指一个符号,例如‘1’,‘@’,‘=’等都是字符。而字符串是多个字符组成的串 例如“1@=”。定义的时候字符需要用单引号,字符串需要用双引号。

用单引号引起的第一个字符实际上代表一个整形数,整数值对应于该字符在编译器采用的字符集中的序列值。 因此,对于采用ASCII字符集的编译器而言,'a'的含义与十进制的97严格一致。

用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制为0的字符'\0'初始化。

扩展资料

在定义一个“字符”的时候,定界符要写成单引号。在屏幕上打印一个字符的时候,需要在printf函数中,使用“%c”这个占位符。在屏幕上要打印一个字符串的时候,在printf函数中,使用的是“%s”这个占位符。与“字符”的“%c”这个占位符是不同的。

字符”占据一个字节,但是“字符串”是占据多个字节。而且,在“字符串”的结尾处,自动被编译器加上了'\0'这个字符,在ASCII码中,'\0'表示的是一个空字符。

如果在定义一个字符串常量的时候,使用了单引号,程序就会报错。在定义字符串的时候,需要在变量名后面加上“中括号”,类似于定义“数组”时候的格式。