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

0 c

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

有什么问题?

  int main(){
      long a = 1234567890123456;
      printf("\n",sizeof(a));
      printf("%ld",a); 
  }
Run Code Online (Sandbox Code Playgroud)

Zaf*_*ffy 6

最大的整数类型是:

unsigned long long
Run Code Online (Sandbox Code Playgroud)

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

当然,也有long long,但它也是负整数,并有较小的限制.

 Type                min                      max

 (signed) long long  -9223372036854775808     9223372036854775807
 unsigned long long  0                        18446744073709551615
Run Code Online (Sandbox Code Playgroud)