当前位置:   article > 正文

浅谈strlen 和 sizeof_sizeof会被优化吗

sizeof会被优化吗

 假如去面试,我们经常会被问到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
}

{

 

}

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号