如果我将一个字符存储在一个int数组中,我会看到该字符的ASCII值,但如果我存储任何其他非整数,那么事情似乎不起作用。
int a[3]={1,2,'-'};
printf("%d %d %d\n", a[0], a[1], a[2]);
在这里,我没有得到编译器的任何输出。
这里发生了什么?
答案 0 :(得分:1)
C中的字符文字类型为int
。因此,本声明中的所有初始化器
int a[3]={1,2,'-'};
有类型int。
此外,在C中有所谓的整数提升,它提升所有整数类型的对象,其等级小于类型int的等级为int类型。