摘要:
原题:在32位机器上,下列代码中#pragmapack(2)classA{inti;unionU{charbuff[13];inti;}u;voidfoo(){}typedefchar*(*f)(void*);enum{red,green,blue}color;}a;sizeof(a)的值是()A、20 B、21C、22 D、24 E、非以上选项解析:classA{inti;//4unionu{charbuff[13];inti;}U;//13//1对齐voidfoo(){}//仅声明,不占空间typedefchar*(*f)(void);//仅声明,不占空间enum{red,green,bl 阅读全文
摘要:
sizeof函数功能:计算数据空间的字节数使用sizeof时string的注意事项string s="hello";sizeof(s)等于string类的大小(32),sizeof(s.c_str())得到的是与字符串地址(4)。1.与strlen()比较strlen计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示(当然用在字符数组计算"\0"的大小)。2.指针与静态数组的sizeof操作指针均可看为变量类型的一种。 阅读全文