如果给输入一个大数字,比如 344565786464675345,我仍然得到输出 这怎么可能,因为 char 的范围是 256,所以它不应该接受大于那个的数字,为什么 char 可以存储这么大的整数?
int main()
{
char b[30];
scanf("%s",b);
printf("\n%s",b);
return 0;
}
最佳答案
char
和 char
数组之间存在差异,后者是您所拥有的。
数组最多可以存储 29 位数字加上空终止符,但您输入的值不会存储为大整数。相反,它存储为一系列字符,其中每个字符代表一个数字:
Index of b[] 0 1 2 3 4 5 6 7 8 ...
char value '3' '4' '4' '5' '6' '5' '7' '8' '6' ...
num value 51 52 52 53 52 53 54 55 54 ...
所有字符都具有可由单个 char
表示的范围内的数值。
关于c - C中的数据类型(字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38747221/