如何在C中读取和分配大整数?

我试图将大整数值分配给c中的变量,当我打印时,我只得到10123456。

有什么问题?

int main(){ long a = 1234567890123456; printf("\n",sizeof(a)); printf("%ld",a); } 

最大的整数类型是:

 unsigned long long 

不要忘记ULL后缀。
或者如果你需要更大的整数,请查看一些像gmp这样的bigint库。

当然,也有很long long ,但它也适用于负整数并且具有较小的限制。

  Type min max (signed) long long -9223372036854775808 9223372036854775807 unsigned long long 0 18446744073709551615 
 long a = 1234567890123456L; 

如果长的时间足够长,取决于编译器/操作系统。 如果不

 long long a = 1234567890123456LL; 

如果数字大于64位,即长于unsigned long long可以容纳的数量,那么除了string( char[] )之外的C中的数据类型将不能容纳该值,将其存储为字符串并尝试写入你自己的function在这些“非常大的数字”上进行操作(例如加,减等)。