首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C/C+编程知识:运算符(五)丨sizeof运算符来啦!

在C或C ++中, Sizeof是一个非常常用的运算符。它是一个编译时一元运算符,可用于计算其操作数的大小。sizeof的结果是无符号整数类型,通常用size_t表示。sizeof可以应用于任何数据类型,包括原始类型(例如整数和浮点类型,指针类型)或复合数据类型(例如Structure,union等)。

用法

sizeof()运算符根据操作数类型以不同方式使用。

1.当操作数是数据类型时

当将sizeof()与int,float,char…等数据类型一起使用时,它仅返回分配给该数据类型的内存量。

让我们来看一个例子:

C语言:

#include

int main()

{

printf("%lu\n", sizeof(char));

printf("%lu\n", sizeof(int));

printf("%lu\n", sizeof(float));

printf("%lu", sizeof(double));

return 0;

}

C ++:

#include

using namespace std;

int main()

{

cout

cout

cout

cout

return 0;

}

注意:sizeof()可能会根据机器提供不同的输出,我们已经在32位gcc编译器上运行了程序。

2.当操作数是一个表达式时

当将sizeof()与表达式一起使用时,它将返回表达式的大小。看例子:

C语言:

#include

int main()

{

inta = 0;

double d = 10.21;

printf("%lu", sizeof(a + d));

return 0;

}

C ++:

#include

using namespace std;

int main()

{

int a = 0;

double d = 10.21;

cout

return 0;

}

从int和double的第一种情况下我们知道,大小分别是4和8,a是int变量,而d是double变量。最终结果将是两倍。因此,我们程序的输出为8个字节。

需要Sizeof

1.找出数组中元素的数量。

Sizeof可用于自动计算数组元素的数量。让我们看例子:

C语言:

#include

int main()

{

int arr[] = { 1, 2, 3, 4, 7, 98, 0, 12, 35, 99, 14 };

printf("Number of elements:%lu ", sizeof(arr) / sizeof(arr[0]));

return 0;

}

C ++:

#include

using namespace std;

int main()

{

int arr[] = { 1, 2, 3, 4, 7, 98,

0, 12, 35, 99, 14 };

cout

return 0;

}

2.为了动态分配的内存块

sizeof在动态内存分配中被大量使用。例如,如果我们要分配足以容纳10个整数的内存,而我们不知道该特定机器中的sizeof(int)。我们可以借助sizeof进行分配。

int* ptr = (int*)malloc(10 * sizeof(int));

希望对大家有帮助!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210116A0DIMG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券