C语言中对sizeof()和strlen()的说明

1.sizeof函数   
sizeof函数返回表达式所占的内存空间(以字节为单位)   
例:

#include<stdio.h> 
#define MONTHES 12 
int main(void) 
{ 
  int days[MONTHES] = {31,28,31,30,30,30}; 
  int len = sizeof(days)/days[0]; 
  printf("days:%d",len);
  return 0;
 }

这段程序输出的结果为:days:48   
因为一个int型在内存中占4个字节,而days数组有12个元素,故共48字节
另外若想求此数组长度,可用如下语句:

 int len = sizeof(days) / sizeof(days[0]);  
``` 
 /*sizeof(days)是整个数组所占的字节数,sizeof(days)时数组中一个元素所占的字节数*/   
 2.strlen函数   
此函数包含在string.h头文件中。返回字符串的长度 ,而非在内存中的字节数,  以"\0"为结束判断,且'\0'不算入总数。  
3.sizeof和strlen比较   
strlen只计算字符串的长度,且'\0'不计算在内。而sizeof可计算各种数据类型在内存中所占的字节数。
且sizeof在计算字符串长度时(char类型在内存中只占一个字节,
故用sizeof函数计算字符串时相当于计算其长度),'\0'计算在内
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C语言大总结 一、基础: 1、进制、位权、1字节等于8位(位是计算机的最小储存单位,字节是计算机最小存储单元)、十...
    雾中探雪阅读 7,828评论 1 36
  • 一、框架 1、Mac系统及常用工具、进制;C数据类型、常量变量、运算符、表达式、格式化输入输出 2、关系运算符、逻...
    师景福阅读 4,046评论 0 2
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,678评论 0 4
  • 老友请我帮她修改公司年会小品文案,我修改好了有些忐忑地发给她,期待她的反馈。 因为时间仓促,也并非十分专业,担心朋...
    明月说阅读 2,701评论 0 1
  • 我们为什么戒不掉玩手机? 文 | 花胡桃 01 4月19日BBC播出的 “Business Daily” 中,除了...
    RainaLi_阅读 9,407评论 19 46