sizeof()与strlen()用法

原创 2007年09月22日 09:28:00
首先我们声明了
char a[5];
a[0]='a';
a[1]='b';
a[2]='c';
1. sizeof()是计算参数所占用的内存的单元数(字节数),那么sizeof(a)==5;sizeof(*a)==1;另外sizeof("abc")==4(不是3)我想这个很容易明白。
2. strlen(const char *),此函数在msdn里面的解释:returns the number of characters in string, excluding the terminal NULL. No return value is reserved to indicate an error。如果直接翻译,其实我测试的结果是一致的(msdn当然还是应该相信的),问题在于:它说的不够清楚,它的意思是说返回字符串的字符个数,不包括结束符NULL(参数要求是以NULL结束的字符串,我的理解应该还包括'/0'结束的)。
3. 我觉得正确的理解是,strlen()是返回字符个数,且,这个个数应该是遇到null或'/0'之前的字符个数。
我们来测试:
#include <iostream.h>
#include <string.h>
void main ()
{   
  char a[5] ;
 a[0]='a';
 a[1]='c';
 a[2]='/0';
 a[3]='a';
 a[4]='b';
 cout <<sizeof(a)<<endl;
 cout<<strlen(a)<<endl;
 cout <<sizeof("abc")<<endl;
 cout <<strlen("abc/0d")<<endl;
}
结果为
5
2
4
3
 

sizeof的用法及与strlen的比较

转载文章,学习一下~ 1、什么是sizeof   sizeof在msdn上的定义:   The sizeof keyword gives the amount of storage, in byte...

sizeof的用法(附strlen函数)

一、由几个例子说开去。 第一个例子: char* ss = "0123456789"; sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针 sizeof(*ss) 结...

sizeof与strlen的用法与区别

在进入正题之前,我们来先看一段代码#include #include int main(int argc, char *argv[]) { char a[10]; printf("...
  • QG_ESE
  • QG_ESE
  • 2016年05月25日 11:53
  • 180

C语言:内存地址分析 & sizeof和strlen用法总结

还是在大学时代接触的C语言,当时学习数组、指针等概念时,怎一个“晕”字了得。最近在学习之余,疯狂地恶补了相关知识,故总结之,如有错误,请大家多多指点。 一、 内存地址分析 1) 先来看一个最基础的...

sizeof与strlen用法详解(结构体对齐)

#include int main(int argc,char **argv) { unsigned char a[10] ={1,2,1,2,3,4}; unsigned char a1[10]...

sizeof和strlen的区别

  • 2014年11月27日 23:41
  • 29KB
  • 下载

Sizeof与Strlen的区别与联系

  • 2012年08月08日 22:37
  • 17KB
  • 下载

关于 strlen 与 sizeof 的区别

关于 strlen 与 sizeof 的区别,我相信很多人都有所了解。以下我总结了几点关于strlen 与 sizeof 的区别和注意事项。 1. strlen 是函数,sizeof 是运算符。 2....

Sizeof与Strlen的区别与联系

  • 2014年02月25日 20:29
  • 17KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sizeof()与strlen()用法
举报原因:
原因补充:

(最多只允许输入30个字)