首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

sizeof跟strlen的理解

2013-03-25 
sizeof和strlen的理解sizeof和strlen的区别1、sizeof是运算符,而strlen是函数。2、sizeof只能用类型做参数,st

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相当于指针

热点排行