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