C语言编程题(五)sizeof结构体与字节对齐

cs 复制代码
struct A
{
    long num;
    char *name;
    short int data;
    char ha;
    short ba[5];
} *p;

int main()
{

    printf("结构体A的大小:%d\n", sizeof(struct A));
    printf("num的大小:%d\n", sizeof(((struct A *)0)->num));
    printf("name的大小:%d\n", sizeof(((struct A *)0)->name));
    printf("data的大小:%d\n", sizeof(((struct A *)0)->data));
    printf("ha大小:%d\n", sizeof(((struct A *)0)->ha));
    printf("ba的大小:%d\n", sizeof(((struct A *)0)->ba));
    return 0;
}

在32位机器上,在对齐为4情况下,sizeof(long)的结果为4字节,sizeof(char*)的结果为4字节,sizeof(short int)的结果与sizeof(short)的结果都为2字节,sizeof(char)的结果为1字节,sizeof(int)的结果为4字节

strlen("\0")与sizeof("\0")

strlen("\0") = 0sizeof("\0") = 2

strlen

strlen用来计算字符串的长度,它从内存的某个位置开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值

sizeof

sizeof是C语言的关键字,它以字节的形式给出了其操作数的存储大小,操作数可以是一个表达式或括在括号内的类型名,操作数的存储大小由操作数的类型决定

sizeof("\0") = 2,这是因为在C/C++中,字符串字面量(以双引号括起来的字符序列)包括其实际字符内容和一个null终止符('\0')作为字符串的结束标志。因此,字符串 "\0" 实际上包含两个字符:一个是null终止符,另一个是实际的字符。

相关推荐
CodeCraft Studio4 分钟前
国产化Excel开发组件Spire.XLS教程:使用Python批量删除Excel分页符
开发语言·python·excel·python开发·spire.xls·excel api库·excel开发组件
木子欢儿7 分钟前
在 Debian 13 上搭建一个 NTP (Network Time Protocol) 服务器
运维·服务器·开发语言·debian·php
疑惑的杰瑞9 分钟前
【C】顺序结构
c语言·内存划分
小龙报10 分钟前
【初阶数据结构】从 “数组升级” 到工程实现:动态顺序表实现框架的硬核拆解指南
c语言·数据结构·c++·算法·机器学习·信息与通信·visual studio
SELSL13 分钟前
Linux文件属性及目录
linux·c语言·linux目录文件·linux文件属性、目录api·linux文件属性
凯子坚持 c16 分钟前
Qt 信号与槽机制深度解析
开发语言·qt
bybitq18 分钟前
Go-Package-Module-functions
开发语言·后端·golang
廋到被风吹走22 分钟前
【Java】【JVM】OOM 原因、定位与解决方案
java·开发语言·jvm
MSTcheng.25 分钟前
【C++STL】map / multimap 保姆级教程:从底层原理到实战应用!
开发语言·c++·stl·map·红黑树
csbysj202027 分钟前
Bootstrap5 按钮组
开发语言