sizeof()与strlen()的区别
2014-07-16 10:52
211 查看
面试的时候做笔试题的时候是否经常遇到这个题目,我遇到过很多此,讲讲自己的浅显的理解吧,如果想更深入的了解就去看看大神们的讲解吧,因为我是菜鸟中的菜鸟
sizeof()是运算符而不是函数,参数可以使类型,函数,变量,指针,对象等。sizeof()是在编译时计算,所以sizeof不能返回动态分配的内存空间的大小。
讲了这么多还没讲sizeof的功能了,sizeof是获取能容纳实现所建立的最大对象的字节大小。
数组---编译时分配的数组空间大小
指针---存储该指针所用的空间大小(存储该指针的地址的长度,是长整形,应该为4)
类型---该类型所占用的空间大小
对象---对象的实际占用空间大小
函数--函数返回类型所占的空间大小,函数的返回类型不能为void
strlen()是函数,要在运行时才能计算,参数必须是字符型指针(char*)。当数组名作为参数传入时,数组就退化成指针
strlen()返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
char* p="abcdefg";
strlen(p);// 7
sizeof(p);//4
char* pp=new char[5];
strlen(pp);//随机输出一个数从pp[0]开始直到遇到NULL结束
sizeof(pp);//错误,sizeof只能用在静态内存
sizeof(*pp);//输出1,返回类型所占的空间
struct A{
short int a1;
short int a2;
short int a3;
};
struct B{
long int b1;
short int b2;
};
sizeof(A);//输出6
sizeof(B);//输出8
char str[100];
strlen(str);//输出0
sizeof(str);//输出100
sizeof()是运算符而不是函数,参数可以使类型,函数,变量,指针,对象等。sizeof()是在编译时计算,所以sizeof不能返回动态分配的内存空间的大小。
讲了这么多还没讲sizeof的功能了,sizeof是获取能容纳实现所建立的最大对象的字节大小。
数组---编译时分配的数组空间大小
指针---存储该指针所用的空间大小(存储该指针的地址的长度,是长整形,应该为4)
类型---该类型所占用的空间大小
对象---对象的实际占用空间大小
函数--函数返回类型所占的空间大小,函数的返回类型不能为void
strlen()是函数,要在运行时才能计算,参数必须是字符型指针(char*)。当数组名作为参数传入时,数组就退化成指针
strlen()返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
char* p="abcdefg";
strlen(p);// 7
sizeof(p);//4
char* pp=new char[5];
strlen(pp);//随机输出一个数从pp[0]开始直到遇到NULL结束
sizeof(pp);//错误,sizeof只能用在静态内存
sizeof(*pp);//输出1,返回类型所占的空间
struct A{
short int a1;
short int a2;
short int a3;
};
struct B{
long int b1;
short int b2;
};
sizeof(A);//输出6
sizeof(B);//输出8
char str[100];
strlen(str);//输出0
sizeof(str);//输出100
相关文章推荐
- sizeof 和 strlen 的区别
- sizeof() 与 strlen()的区别
- Sizeof与Strlen的区别与联系(转)
- strlen和sizeof有什么区别?
- Sizeof与Strlen的区别与联系(转)
- strlen与sizeof的区别
- sizeof与strlen的区别
- sizeof 与 strlen 的区别
- strlen和sizeof有什么区别?
- Sizeof与Strlen的区别与联系(转)
- strlen和sizeof的区别
- sizeof与strlen的区别
- strlen和sizeof的区别
- C++-sizeof()与strlen()的区别
- strlen和sizeof的区别
- 重写string.h中的字符串操作函数--strlen,strlen 与sizeof的区别
- sizeof 和 strlen区别
- Sizeof与Strlen的区别与联系
- strlen sizeof的区别
- strlen与sizeof的区别