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


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

目录
相关文章
|
算法 计算机视觉 Python
DSP:数字信号处理技术的魅力与应用
DSP:数字信号处理技术的魅力与应用
|
网络协议 算法 网络性能优化
|
关系型数据库 数据安全/隐私保护
Kerberos常见报错汇总
汇总了Kerberos在配置和使用过程中可能遇到的常见错误,包括密码不匹配、配置文件参数缺失、数据库文件不存在、日志文件路径错误等问题,并为每个问题提供了详细的错误复现、原因分析以及解决方案。
1187 3
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
2332 13
|
Web App开发 安全 前端开发
X-Frame-Options响应头防点击劫持
X-Frame-Options响应头防点击劫持
1539 6
|
C语言
C语言:%d, %2d, %02d 等
C语言:%d, %2d, %02d 等
|
架构师 算法 测试技术
嵌入式系统软件架构设计(长篇深度好文)
嵌入式系统软件架构设计(长篇深度好文)
9685 3
|
监控 Unix Linux
C语言进程(第一章进程基础,fork()函数,pid_t, pid, getpid())
C语言进程(第一章进程基础,fork()函数,pid_t, pid, getpid())
1558 0
|
存储 算法
滑动窗口算法的基本思想、应用场景、实现方法、时间复杂度和常见问题
滑动窗口算法的基本思想、应用场景、实现方法、时间复杂度和常见问题
2274 1
|
编解码 Ubuntu Linux
rk3588 mpp_log 不打印输出
rk3588 mpp_log 不打印输出解决方案 本人csdn博客搬运
870 0