测定某个类型所占的内存空间 即字节个数如 sizeof(char ) 等于 1 因为不同的系统类型 所占的字节数不同,所以提供了这个函数,测试系统基本类型所占的内存空间 。 扩展类型也是基本理性组成的,所以SIEFOF 用来测试类型长度。
创新互联专业为企业提供曾都网站建设、曾都做网站、曾都网站设计、曾都网站制作等企业网站建设、网页设计与制作、曾都企业网站模板建站服务,10年曾都做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
strlen()只是统计字符串的长度,统计到'\0'结束,但不包括'\0',这个与sizeof()不一样。
对于用双引号引起来的字符串,系统默认最后一位字符为'\0',如你自己定义的:
char a[]="china";
char b[]={"china"};
另外,数组初始化还可以是一个字符一个字符赋值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系统不会自动给你在最末位添加'\0’
所以在统计char c[]={'c','h','i','n','a'}时,统计到a时,系统还没找到\0,所以会继续统计,直到找到'\0'为止。所以就有你第三个值为11的情况,这个根据不同的运行环境而定。
sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。
在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。
相关定义
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
MSDN上的解释为:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.
其返回值类型为size_t,在头文件stddef.h中定义。