c - C中的数据类型(字符)

标签 c

如果给输入一个大数字,比如 344565786464675345,我仍然得到输出 这怎么可能,因为 char 的范围是 256,所以它不应该接受大于那个的数字,为什么 char 可以存储这么大的整数?

int main()
{
    char b[30];
    scanf("%s",b);
    printf("\n%s",b);
    return 0;
}

最佳答案

charchar 数组之间存在差异,后者是您所拥有的。

数组最多可以存储 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/

相关文章:

c - 卡在c中的项目中

c - 归并排序 C 实现

c++ - 使用 CUDA 中的缩减查找数组中的最小值(但跳过一些元素)

c - 仅使用 50 年代和 20 年代钞票的 ATM 取款 C

c - automake 中的构建选项

C - 从一个字节中获取一点

c - %p 是将变量的地址打印为指针,还是打印它指向的内容?

c - 如何打印 5 字节整数值?

为 GTK+ 创建网格布局

c - 如何在 eclipse 和 bash 上运行接受参数的代码?