读书人

sizeof跟strlen的理解

发布时间: 2013-03-25 15:43:04 作者: rapoo

sizeof和strlen的理解

sizeof和strlen的区别

1、sizeof是运算符,而strlen是函数。

2、sizeof只能用类型做参数,strlen只能用char * 做参数,而且必须以‘\0’结尾。

3、数组在sizeof上不退化,而在strlen会退化为指针。

4、大部分编译程序在编译的时候就把sizeof计算过,是类型或者变量的长度。

5、Strlen的结果要在运行的时候才能计算出来,用来计算字符串的长度。

6、Sizeof不返回静态变量分配的空间,

7、计算结构体变量时必须考虑数据对齐问题,输的CPU读取快。Sizeof不计算结构体的函数空间。

8、Sizeof不能用于函数类型,不完全类型——未知大小数据的,未知内容的,void等,和位字段。

class A
{
int a;
short b;
static int d;

void fun()
{
return ;
};
};

cout<<sizeof(A)<<endl;//8,只计算short和int的值
cout<<sizeof(new A())<<endl;//4相当于指针

读书人网 >编程

热点推荐