C程序查找数据类型大小
当我们写 C 语言程序时,必须知道不同的数据类型所需的字节数。这对于编写有效的程序非常重要。C 语言提供了一种查找数据类型大小的方法,可以用sizeof 运算符来获取不同数据类型所占用的字节数。
使用sizeof运算符查找C语言中数据类型的大小
sizeof
运算符是用于获取不同数据类型的大小的。sizeof 运算符可以与表达式、变量或数据类型组合使用,并返回指定变量、常量或数据类型所占用的字节数。
下面是查找不同数据类型大小的示例代码:
#include <stdio.h>
int main()
{
printf("Size of char: %ld byte(s)\n", sizeof(char));
printf("Size of int: %ld byte(s)\n", sizeof(int));
printf("Size of float: %ld byte(s)\n", sizeof(float));
printf("Size of double: %ld byte(s)\n", sizeof(double));
return 0;
}
上面的代码使用了 printf 函数来输出不同数据类型的大小。在使用sizeof 运算符时,要注意获取的值是以字节为单位的。
示例说明
示例一
下面是一个示例程序,该程序演示如何使用sizef 运算符在结构体中获取不同变量的大小。
#include <stdio.h>
#include <string.h>
struct student
{
int roll_no;
char name[50];
float marks;
};
int main()
{
struct student stu;
printf("Size of int data type: %ld byte\n", sizeof(int));
printf("Size of char data type: %ld byte\n", sizeof(char));
printf("Size of float data type: %ld byte\n", sizeof(float));
printf("Size of double data type: %ld byte\n", sizeof(double));
printf("Size of struct student: %ld bytes\n", sizeof(stu));
return 0;
}
在上面的程序中,我们定义了一个结构体 student
,该结构体包括三个变量 roll_no
、name
和 marks
,然后我们使用 sizeof 运算符来找出每个变量和结构体自身所占用的字节数。
程序输出结果为:
Size of int data type: 4 byte
Size of char data type: 1 byte
Size of float data type: 4 byte
Size of double data type: 8 byte
Size of struct student: 56 bytes
该程序输出了字符串变量、整数变量和浮点数变量的大小,以及结构体自身的大小。我们可以看到,变量的大小由变量所属的数据类型决定。结构体的大小是结构体中所有变量大小的总和。
示例二
下面是一个示例程序,该程序演示如何使用sizeof运算符在数组中获取不同变量的大小。
#include <stdio.h>
int main()
{
int a[5];
double b[5];
printf("Size of int array: %ld bytes\n", sizeof(a));
printf("Size of double array: %ld bytes\n", sizeof(b));
return 0;
}
在上面的程序中,我们定义了两个数组 a
和 b
,一个包含5个整数,另一个包含5个双精度浮点数。然后我们使用sizeof 运算符来找出每个数组所占用的字节数。
程序输出结果为:
Size of int array: 20 bytes
Size of double array: 40 bytes
由此可见,数组的大小由数组元素的数量和元素所占用的字节数决定。