赞
踩
假如去面试,我们经常会被问到stlen 和 sizeof的用法。当然 实际开发中我们也常会用到它们;
1. 区别
sizeof()是运算符,由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组的空间,返回值跟这些里面所存储的内容没有关系。sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型
strlen()是函数,计算字符串的长度,以'\0'为字符串结束标志;
还是看代码比较方便,相当于
int strlen(const char * str)
{
int len =0;
while(*p !='\0')
{
len++;
}
return len;
}
--------------------------------------------------------------------------------------------------------------------------------
{
char a[30] = {0};
char *b=(char *)malloc(20*sizeof(char));
printf("%d\n",sizeof(a)); // 30
printf("%d\n",sizeof(b)); //4
printf("%d\n",sizeof(a[3])); //1
printf("%d\n",sizeof(b+3)); //4
}
{
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。