为什么char不能工作但是int可以工作

时间:2020-02-16 03:31:17

标签: c char int

char array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%c\n", array[5]);

这将返回“”。除了将char更改为int之外,它只显示“ 5”。我可以接受-128到127之间的数字吗?

int array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%i\n", array[5]);

1 个答案:

答案 0 :(得分:4)

打印char时,C假定存储的值应该表示ASCII编码的文本。访问array[5]会产生值6,它对应于ASCII值ACK。此字符不可打印,这就是为什么看不到输出的原因。

字符 6由ASCII值54表示。要产生此值,请使用char文字'6'

例如,尝试将数组初始化为:

char array[]= {'1','2','3','4','5','6','7','8','9','1','2','3','6','7'};

这将导致您期望的行为。

或者,您可以在第一个代码段中使用标志%i代替%c,将字符打印为带格式的整数。