sizeof的返回值类型:size_t

简介: sizeof返回值类型是 size_t ,size_t 是无符号整数类型

一、sizeof是什么


如题,sizeof是一个操作符,且是单目操作符


二、sizeof返回值类型


sizeof返回值类型是 size_t ,size_t 是无符号整数类型


三、sizeof的使用


1.计算数据类型的大小(单位:字节)

printf("%zd\n", sizeof(short));
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(long));
printf("%zd\n", sizeof(long long));
printf("%zd\n", sizeof(float));
printf("%zd\n", sizeof(double));

1f4ef83453124d8f3c26faba75c720e9_33e2e4f3458d4dd2b2f06f35a631c4a9.png

2.也可以直接计算变量的大小,此时 sizeof 的括号可省略

int a = 10;
double b = 3.14;
printf("%zd\n", sizeof(a));
printf("%zd\n", sizeof b );

19bb2a3a8ff941750f0854735f4e1ee4_f33aed99d711408e9ce9b4941276c0cf.png

四、关于size_t


以一例题入手,求运行结果


#include <stdio.h>
int i;
int main()
{
    i--;
    if (i > sizeof(i))
    {
        printf(">\n");
    }
    else
    {
        printf("<\n");
    }
    return 0; 
}


分析:1.全局变量 i 未初始化,则默认初始化为0


          2.i --后,i 等于 -1


          3.sizeof(i)等于4,但是无符号整数


          4.整型-1 与 无符号整型 4 比较大小,需要进行算数转换:将整型-1转换为无符号整型


如何算数转换:补码的最高位成为有效位,不再是符号位


-1的原码:10000000 00000000 00000000 00000001


      补码:11111111 11111111 11111111 11111111


算数转换后补码:11111111 11111111 11111111 11111111


                 原码:11111111 11111111 11111111 11111111


十进制为 4,294,967,295  大于 4


所以最终程序运行结果为 >

目录
相关文章
|
网络协议 算法 网络性能优化
|
存储 安全 Linux
【实战指南】7个设置/获取接口了解Linux时间管理
本文系统介绍了Linux时间管理中的7个关键设置/获取接口,涵盖时间获取(如`time`、`gettimeofday`、`clock_gettime`)、时间设置(如`stime`、`settimeofday`、`clock_settime`)以及时间转换和格式化等内容。文章详细解析了绝对时间和相对时间的概念,包括GMT、UTC及本地时间的区别,并通过实例测试展示了各接口的使用方法与特性。此外,还探讨了时区设置对时间计算的影响,强调在实际开发中推荐使用UTC作为基准时间以避免时区变化带来的问题。总结部分结合项目经验,提醒开发者注意时间服务的重要性及潜在风险,例如时间跳跃可能引发的应用故障。
1162 138
【实战指南】7个设置/获取接口了解Linux时间管理
|
关系型数据库 数据安全/隐私保护
Kerberos常见报错汇总
汇总了Kerberos在配置和使用过程中可能遇到的常见错误,包括密码不匹配、配置文件参数缺失、数据库文件不存在、日志文件路径错误等问题,并为每个问题提供了详细的错误复现、原因分析以及解决方案。
1149 3
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
77859 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
存储 算法 编译器
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(一)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
2271 0
|
消息中间件 Linux
Linux IPC(进程间通信)管理:深入解析ipcs和ipcrm命令的用法与示例
在Linux操作系统中,进程间通信(IPC)是实现进程之间数据传递和同步的关键机制。Linux提供了多种IPC方式,如消息队列、信号量和共享内存等。为了优化系统性能与稳定性,及时管理和清理IPC资源非常重要。本文将深入介绍ipcs和ipcrm命令的使用方法,并给出丰富的示例,以帮助读者更好地理解IPC资源管理的实践技巧。
1988 1
|
C语言
C语言结构体赋值的四种方式
本文总结了C语言结构体的四种赋值方式,并通过示例代码和编译运行结果展示了每种方式的特点和效果。
2091 6
|
前端开发 数据安全/隐私保护 开发者
Pic Smaller:开源神器,碾压TinyPNG!90%开发者不知道的免费图像压缩利器
嗨,大家好,我是小华同学。今天介绍一个强大的开源图像压缩工具——Pic Smaller(图小小)。它支持JPEG、PNG、WEBP等多种格式的智能压缩,具备本地压缩、自定义配置等特性,确保图像数据安全。用户只需上传图片,Pic Smaller便会自动执行压缩并提供详细信息。项目已部署在Vercel平台,Pic Smaller基于Vite和React构建,适合开发者、设计师及普通用户,帮助高效管理图像。
2269 9
linux中 grep过滤查找 及 管道 ”|” 的使用
linux中 grep过滤查找 及 管道 ”|” 的使用
|
存储 数据库 数据格式
深入理解依赖倒置原则(Dependence Inversion Principle)
深入理解依赖倒置原则(Dependence Inversion Principle)
1568 0