sizeof的总结

sizeof
1 指针全都是4。
char* p = "0123456789";  sizeof(p) = 4;
char*p = new char[100];   sizeof(p) = 4;
2 数组要看个数跟实际内容。
char p[] = "0123456789"; sizeof(p) = 11;
char p[100] = "0123456789"; sizeof(p) = 100;
3 考虑内存对齐。
struct p
{ long x;
  short y;
}
sizeof(p) = 8;
4 类
class p  {}; sizeof(p) = 1;  //空类为1
class p  {int x; static int y}; sizeof(p) = 4; //静态变量在全局数据区,不计。
class p  {virtual fun();}; sizeof(p) = 4; //类中有虚函数指针。
4 sizeof跟strlen的区别
1>sizeof是操作符,strlen是字符串函数,
2>sizeof可以用类型做参数,函数体做参数,strlen只能用char*做参数,且必须是以"\0"结尾的,
3>数组做sizeof的参数不退化,传递给strlen就退化为指针。
4>sizeof后如果是类型必须加括号,如果是变量名可以不加括号,这是因为sizeof是个操作符而不是个函数。

5 位域

 struct tTest
 {
  int i:2;
  int j:1;
 };

tTest tt;  int n = sizeof tt; // n = 4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值