C编程中的sizeof()运算符

时间:2020-02-23 14:32:06  来源:igfitidea点击:

像许多其他编程语言一样,C也带有一些预定义的函数。
C中的sizeof()运算符也是预定义的。
但是,即使看起来像它也不是一个函数,而是一个一元运算符。
让我们仔细看看运算符及其定义。

C语言中sizeof()运算符的定义

从理论上讲,sizeof()是一元运算符,用于获取以字节为单位的大小以存储指定的数据类型。
它还可用于确定存储变量或者表达式结果所需的字节。

以下代码说明了如何在C中实现sizeof()运算符,

#include<stdio.h>
struct jd{
  int x;
  double y;
  int z;
}s1;
int main()
{
 int a=5,b=5;
 printf("%d\n", sizeof(int));
 printf("%d\n", sizeof(char));
 printf("%d\n", sizeof(double));
 printf("%d\n", sizeof(long));
 printf("%d\n", sizeof(a));
 printf("%d\n", sizeof(a+b));
 printf("%d", sizeof(s1));
 return 0;
}

输出:

4
1
8
4
4
4
16

其中可以观察到" sizeof()"运算符如何返回int,char,double和long数据类型的字节大小。
同样,它还为我们提供了变量" a"所需的大小,甚至给我们表达式" a + b"的结果数据类型。

对于类型结构,运算符返回每个成员数据类型的大小之和。

在数据结构中的应用

此外," sizeof()"运算符可在不同数据结构的基本构造中找到其应用。
像链表,树,图等。

以下代码动态分配一个与数据类型struct s1相同的内存大小。

struct s1 *ptr;
ptr=(struct s1*)malloc(sizeof(struct s1));

因此,以这种方式,在不同数据结构的情况下,将创建离散节点。