首页 > 编程语言 > 详细

C++笔试考点之sizeof

时间:2014-03-12 13:12:02      阅读:527      评论:0      收藏:0      [点我收藏+]

申明:此文仅针对作者在笔试过程中遇到过的问题,不做全面总结。结果均经过32位平台验证。

1、基本数据类型

常见的基本数据类型有void、bool、char、int、short(int)、long(int)、float、double、long long、long double等。同类型有符号与无符号所占字节数相同,故在此不做区分。

类型 大小
void 0 byte
bool 1 byte
char 1 byte
short(int) 2 bytes
long(int) 4 bytes
int 4 bytes
float 4 bytes
double 8 bytes
long long 8 bytes
long double 8 bytes

2、指针

在32位机器下,指针的大小是4字节。

下面有个例子,

char* str="string";

sizeof(str)=_______

我们通常想到的答案是6或者是7。以为要求的是字符串的大小,但其实,str是一个字符指针,答案应该是4。

3、字符串

求字符串的大小时,很容易出错。因为常常会忽略字符串都是以"\0"结尾的。

上面那个例子,如果改为

char str[]="string";

sizeof(str)=_______

那么正确答案应该是7。

但是如果指定了字符串的长度,例如

char str[10]="string";

sizeof(str)=_______

那么答案则是10。

如果指定的字符串的长度小于字符串本身的长度,则会出错。

char str[6]="string";

sizeof(str)=_______

在VS2010下,提示错误,数组界限溢出。

4、结构体

struct A

{

   int a;

   char b;

   float c;

   double d;

 };

sizeof(A)=_______

在默认对齐方式下,答案为24。

5、类

class B

{

   int b;

   B();

   ~B(); 

};

sizeof(B)=_______

答案为4。计算方式与结构体相同。

6、函数

等于函数返回值的大小。

C++笔试考点之sizeof,布布扣,bubuko.com

C++笔试考点之sizeof

原文:http://www.cnblogs.com/log-a/p/3595307.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!