C 程序 查找int,float,double和char的大小

  • Post category:C

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_nonamemarks,然后我们使用 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;
}

在上面的程序中,我们定义了两个数组 ab,一个包含5个整数,另一个包含5个双精度浮点数。然后我们使用sizeof 运算符来找出每个数组所占用的字节数。

程序输出结果为:

Size of int array: 20 bytes
Size of double array: 40 bytes

由此可见,数组的大小由数组元素的数量和元素所占用的字节数决定。