C 语言 中的 long long 用来表示一个 整数,long long 表示的数值范围是整型中最大的。
long long int varname = value;
long long varname = value; //简写
参数 | 描述 |
---|---|
long long int | 定义 long long 类型变量使用的类型。 |
varname | 变量名。 |
value | 可选,变量的初始值,该值不可以超过 long long 类型的最大值。 |
使用 long long int 定义了一个 long long 类型的变量 varname,并赋初值为 value,同时,还可以直接使用 long long 来定义 long long 类型的变量。
说明 | 描述 |
---|---|
取值范围 | -9223372036854775807ll - 1 ~ 9223372036854775807ll |
字节数 | 8 |
格式化符 | %lld |
C 语言的 long long 的取值范围为 -9223372036854775807ll - 1 ~ 9223372036854775807ll,同时,在 limits.h
中有 常量 LLONG_MIN
表示其最小值和 LLONG_MAX
表示其最大值。
其中,取值范围数字最后的 l 表示这个是一个长整型变量。
使用 long long int 定义 long long 变量
#include <stdio.h>
int main(long argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n");
long int a = 101;
long int b = 201, c = 301, d = 1024;
printf("a = %lld\n", a);
printf("b = %lld, c = %lld, d = %lld\n", b, c, d);
}
程序运行后,控制台输出如下:
我们首先,定义了一个 long long 类型的变量 a,并初始化为 101,接着,我们一次定义了三个 long long 类型的变量,分别为 b,c 和 d,并分别初始化。
最后,我们使用了 printf 打印了我们定义的四个变量的值。
使用 limits.h
获取 long long 的取值范围
#include <stdio.h>
#include <limits.h>
int main(long argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n");
long long int longlongMin = LLONG_MIN;
long long int longlongMax = LLONG_MAX;
printf("longlongMin = %lld, longlongMax = %lld\n", longlongMin, longlongMax);
}
程序运行后,控制台输出如下:
我们首先,使用 include 引入了 limits.h
头文件,接着,我们使用了常量 LLONG_MIN 和 LLONG_MAX 分别获取了 long long 类型的最小值和最大值。
同时,我们将最小值和最大值分别赋值给了变量 longlongMin 和 longlongMax,最后,我们使用 printf 输出了 long long 类型的最大值和最小值。
如果变量超出了 long long 范围,结果未知
#include <stdio.h>
#include <limits.h>
int main(long argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n\n");
long long int longlongMin = LLONG_MIN - 100;
long long int longlongMax = LLONG_MAX + 100;
printf("longlongMin = %lld, longlongMax = %lld\n", longlongMin, longlongMax);
}
程序运行后,控制台输出如下:
我们分别定义了一个 long long 类型的变量 longlongMin 和 longlongMax,同时,我们将 longlongMin 赋值为 long long 类型的最小值还减去 100,将 longlongMax 赋值为 long long 类型的最大值还加上 100。
最后,我们输出了 longlongMin 和 longlongMax,我们发现,此时的 longlongMin 的值和 longlongMax 的值已经不是正确的值了,已经发生了溢出。
因此,我们定义变量时,变量的值一定不要超过变量的取值范围。
使用 sizeof,获取 long long 的字节
#include <stdio.h>
int main(long argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n");
long long int num = 100;
printf("sizeof long long = %d\n", sizeof(num));
}
程序运行后,控制台输出如下:
我们使用 sizeof 获取了 long long 变量所占的字节数,结果,输出了 8,即 long long 占 8 字节。
使用 long long 定义 long long 变量
#include <stdio.h>
int main(int argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n");
long long lla = 100;
printf("lla = %lld\n", lla);
}
程序运行后,控制台输出如下:
我们定义 long long 变量时,也可以直接使用 long long 就可以了,而没有使用 long long int。
C 语言的 long long 的取值范围为 -9223372036854775807ll - 1 ~ 9223372036854775807ll,long long 占 8 个字节,同时 long long 的格式化符为 %lld
。