C语言sizeof 不是函数吗?

一、问题

        sizeof 怎么⽤,它不是函数吗?

二、解答

        sizeof 在 C 和 C++ 中不是一个函数,而是一个运算符。它在编译时计算其操作数所占用的内存大小,并返回一个大小(字节数),这个结果是类型或表达式的存储大小,不涉及运行时求值。

sizeof 的基本用法

 1、对于基本数据类型

sizeof(int);  // 返回int类型变量占用的字节数

 2、对于变量

int a;
sizeof(a);  // 返回变量a占用的字节数,与sizeof(int)相同

 3、对于数组

char str[] = "Hello";
sizeof(str);  // 返回整个数组str占用的字节数,包含结束符'\0'

 4、对于指针

int* ptr;
sizeof(ptr);  // 返回指针变量ptr的大小,通常是指针在当前平台上的字节数,而不是它所指向
的对象的大小

 5、对于用户自定义类型(如结构体、类、联合体)

struct MyStruct {
    int a;
    char b;
};
MyStruct s;
sizeof(s);  // 返回结构体MyStruct实例s占用的总字节数

 6、对于类型别名

typedef double MyDouble;
sizeof(MyDouble);  // 返回double类型的大小

        从上⾯的例⼦可以知道,sizeof 不是函数,它只是关键字,但是⼀般情况下,它将以“sizeof()” 貌似函数的形式出现。

        sizeof 表⽰的是计算对象所占内存空间的⼤⼩。“sizeof0”和函数的形式⼀样,函数名 后⾯跟了⼀对括号,但实际上它只是关键字,并⾮函数。

        另外,需要注意的是,sizeof 在计算变量所占空间⼤⼩时,括号是可以省略的,⽽在 计算类型⼤⼩时,括号则不能省略

三、总结

        总之,sizeof 运算符提供了一种获取对象或类型存储要求的方法,这对于动态分配内存、对齐处理以及理解程序中的内存布局非常有用。

相关推荐

  1. C语言sizeof 函数

    2024-01-26 14:36:01       45 阅读
  2. C语言——数组、sizeof关键字

    2024-01-26 14:36:01       25 阅读
  3. C语言sizeof和strlen区别

    2024-01-26 14:36:01       58 阅读
  4. C语言从头学17——sizeof 运算符

    2024-01-26 14:36:01       28 阅读
  5. c语言版)strlen和sizeof的区别

    2024-01-26 14:36:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 14:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 14:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 14:36:01       82 阅读
  4. Python语言-面向对象

    2024-01-26 14:36:01       91 阅读

热门阅读

  1. YAML语法记录

    2024-01-26 14:36:01       55 阅读
  2. 关于SQLite 的下载与使用。配合python

    2024-01-26 14:36:01       60 阅读
  3. mysql面试题合集-分布式

    2024-01-26 14:36:01       54 阅读
  4. 玩转浏览器开发者工具

    2024-01-26 14:36:01       52 阅读
  5. shallowRef与shallowReactive

    2024-01-26 14:36:01       48 阅读
  6. IEC60870-5-104规约

    2024-01-26 14:36:01       48 阅读
  7. npm更换镜像

    2024-01-26 14:36:01       51 阅读
  8. Kotlin协程 SharingStarted

    2024-01-26 14:36:01       57 阅读