[英]Why can't char works but int does
char array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%c\n", array[5]);
这将返回“”。 但是当我将 char 更改为 int 时,它会打印“5”。 我 tot char 可以接受从 -128 到 127 的数字吗?
int array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%i\n", array[5]);
当您打印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
将字符打印为格式化整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.