sizeof 用法

1. 在Win32平台上,指针长度都是4字节,char*、int*、double*如此,vbptr(virtual base table pointer)、vfptr(virtual function table pointer)也是如此,
2. 对于结构体(或类),编译器会自动进行成员变量的对齐,以提高运算效率。自然对齐(natural alignment)也称默认对齐方式是按结构体的成员中size最大的成员对齐的,
3. 当操作数具有数组类型时,其结果是数组的总字节数,
4. 联合类型操作数的sizeof是其最大字节成员的字节数,
5. 如果操作数是函数中的数组形参或函数类型的形参,sizeof给出其指针的大小。

以下代码在VC++6.0中编译通过:
#include "stdio.h"
struct struct1
{
char dda;
double dda1;
int type;
}Stru1;

struct struct2
{
double dda1;
char dda;
int type;
}Stru2;

int *a[]={11,12,13,14,15,16};
int *b=NULL;

void main(void)
{
char *pchar;
int *pint;
printf("sizeof(pchar) is %d\n",sizeof(pchar));
printf("sizeof(pint) is %d\n",sizeof(pint));
printf("sizeof(Stru1) is %d\n",sizeof(Stru1));
printf("sizeof(Stru2) is %d\n",sizeof(Stru2));
printf("sizeof(a) is %d\n",sizeof(a));
printf("sizeof(b) is %d\n",sizeof(b));
}

编译运行后的结果是:
sizeof 用法 - iDNS - 互联网是人类进步的阶梯

参考资料:
http://zhidao.baidu.com/question/19171773.html
http://www.vckbase.com/document/viewdoc/?id=1054
http://blog.vckbase.com/billdavid/archive/2004/06/23/509.html
http://www.cppblog.com/franksunny/archive/2006/12/27/16894.html
http://xsh.changanyouth.cn/new/bbs/read.php?tid=124
http://blog.sina.com.cn/s/blog_4b02b8d001000644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值