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


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

目录
相关文章
|
存储 编解码 Cloud Native
C++ Qt关于多屏幕窗口处理
C++ Qt关于多屏幕窗口处理
|
10月前
|
监控 数据可视化 API
低代码平台对接API:无需编程快速搭建电商数据中台
低代码平台助力电商企业快速搭建数据中台,通过可视化操作整合京东、淘宝等多平台API,实现库存监控、价格对比、订单分析等功能,降低技术门槛,提升运营效率。
|
机器学习/深度学习 自然语言处理 搜索推荐
自注意力机制全解析:从原理到计算细节,一文尽览!
自注意力机制(Self-Attention)最早可追溯至20世纪70年代的神经网络研究,但直到2017年Google Brain团队提出Transformer架构后才广泛应用于深度学习。它通过计算序列内部元素间的相关性,捕捉复杂依赖关系,并支持并行化训练,显著提升了处理长文本和序列数据的能力。相比传统的RNN、LSTM和GRU,自注意力机制在自然语言处理(NLP)、计算机视觉、语音识别及推荐系统等领域展现出卓越性能。其核心步骤包括生成查询(Q)、键(K)和值(V)向量,计算缩放点积注意力得分,应用Softmax归一化,以及加权求和生成输出。自注意力机制提高了模型的表达能力,带来了更精准的服务。
13779 46
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
7792 6
|
存储 开发框架 小程序
【全栈小程序开发路线】手把手教你入门小程序开发,小白必看!
以下内容是结合我项目中实战经验,踩坑记录,大量时间学习小程序的积累,总结分享给大家。 学习路线包括前端基础、小程序开发框架、UI组件库、云开发、周边生态以及插件这几个纬度,学完这些,你也能全栈开发一个属于自己的产品。
1243 0
|
Shell 网络安全 开发工具
gitbash 安装与使用
gitbash 安装教程
994 1
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
75700 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
C语言
C语言结构体赋值的四种方式
本文总结了C语言结构体的四种赋值方式,并通过示例代码和编译运行结果展示了每种方式的特点和效果。
1903 6
|
编译器 C语言
C语言中的浮点数:深入探索与应用
C语言中的浮点数:深入探索与应用
2931 1
linux中 grep过滤查找 及 管道 ”|” 的使用
linux中 grep过滤查找 及 管道 ”|” 的使用