找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

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

admin 2021-1-17 22:26 126人围观 C++相关



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



用法

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

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


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



让我们来看一个例子:

C语言:

#include <stdio.h>

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 <iostream>

using namespace std;

int main()

{

    cout << sizeof(char)<<"\n";

    cout << sizeof(int)<<"\n";

    cout << sizeof(float)<<"\n";

    cout << sizeof(double)<<"\n";

    return 0;

}

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

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


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

C语言:

#include <stdio.h>

int main()

{

    inta = 0;

    double d = 10.21;

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

    return 0;

}

C ++:

#include <iostream>

using namespace std;

int main()

{

    int a = 0;

    double d = 10.21;

    cout << sizeof(a + d));

    return 0;

}

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



需要Sizeof

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


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

C语言:

#include <stdio.h>

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 <iostream>

using namespace std;

int main()

{

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

    0, 12, 35, 99, 14 };

    cout << "Number of elements: "

    <<(sizeof(arr) / sizeof(arr[0]));

    return 0;

}

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


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

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

希望对大家有帮助!更多知识,会继续分享奥~

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群【1090842465】

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:



编程学习视频分享:




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:C语言编程学习基地,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......