sizeof()

@[TOC]从头梳理一遍c,记录以前不注意的点,以前没注意现在踩了一堆坑

sizeof()

常用一元操作符,计算类型所占内存大小,多少个字节。
sizeof对对象求内存大小,最终都是转换为对对象的数据类型进行求值。
sizeof (表达式); //值为表达式的最终结果的数据类型的大小

1.结构体的sizeof

按照结构体中最宽的字节进行字节对齐,空结构体字节为1。内存是顺序存储。
2.联合体的sizeof
联合体的sizeof也就是每个成员sizeof的最大值,内存共享。

3.数组的sizeof
数组的sizeof值等于数组所占用的内存字节数。就是数组大小*类型字节大小。
另外,函数形参传参可能只计算指针sizeof()。

4.指针的sizeof
在32位计算机中,一个指针变量的返回值必定是4。16位系统返回2。64位系统返回8.
char *b = “helloworld”; sizeof(b)=4;sizeof(*b)=1;
char b[]= “helloworld”;sizeof(b)=11;
char *b[] ={ “helloworld”}; sizeof(b)=4;sizeof(b[0])=4;
char *c[10]; sizeof©=40;
double *d;
int **e; sizeof(e)=4;
void (*pf)(); sizeof(pf)=4;//函数传递数组退化为指针,除非引用
int *p=new int[10];sizeof§=4;
申请10个整型变量空间,没有赋初值,并定义一个整型指针p指向该地址空间开始处,sizeof计算的只是一个指针,而不是数组。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值