1.参数

  sizeof是c/c++ 中的一个操作符,其作用是返回对象或数据类型所占的内存字节数。

用法:sizeof(对象)、sizeof 对象、sizeof(类型)

如果类型做参数,返回的是该类型所占内存字节数,

对象做参数的几个常用的说明: sizeof(数组名)  返回的是数组所占空间字节数,  如:sizeof(数组名)/sizeof(数组元素类型)    计算数组大小。

                sizeof(指针)  返回指针类型大小(32位机为4字节)

                sizeof(*指针) 返回指针所指向数据类型的大小,如 char * pChar='a';  sizeof(*pChar)   为1字节。

  strlen是c/c++ 中的一个函数,其作用是返回字符串的长度。

  用法: strlen(char *pStr) 参数只能是字符指针。并且注意,字符指针指向的字符串必须以 \0 结尾(原因是strlen就是根据 \0 来判断字符指针是否结尾。)

  另:数组名做函数参数的时候退化为指针。 但是上面可以看到 sizeof(数组名) 和sizeof(指针) 得到的是不一样的结果正好验证了 sizeof是操作符跟strlen函数的区别。

  2.举例理解。

  操作数组:char str[20] ="0123456789";

  strlen(str)     10

  sizeof(str)  20    20*sizeof(char)

  sizeof(*str)  1             sizeof(char)

  操作字符指针: char *pStr ="0123456789";

  sizeof(pStr)   4

  strlen(pStr)   10

  sizeof(*pStr)  1

  另:如果要获得字符串的长度,则一定要使用strlen  想想为什么吧。

  

sizeof 跟 strlen 的区别的更多相关文章

  1. sizeof和strlen的区别

    一.sizeof    sizeof(...)是运算符,而不是一个函数.    sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了, ...

  2. Sizeof与Strlen的区别与联系

    转自:http://www.cnblogs.com/carekee/articles/1630789.html 一.sizeof    sizeof(...)是运算符,在头文件中typedef为uns ...

  3. Sizeof与Strlen的区别与联系(转)

    Sizeof与Strlen的区别与联系 一.sizeof     sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型 ...

  4. C++-sizeof和strlen的区别

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  5. sizeof和strlen的区别和联系总结

    link:http://blog.csdn.net/ghevinn/article/details/9974967    strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头 ...

  6. 【转】Sizeof与Strlen的区别与联系

    原文地址:http://www.cnblogs.com/carekee/articles/1630789.html 1.sizeof  sizeof(...)是运算符,在头文件中typedef为uns ...

  7. C++Sizeof与Strlen的区别与联系

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  8. Sizeof与Strlen的区别【转】

    本文转载自:http://www.cnblogs.com/carekee/articles/1630789.html Sizeof与Strlen的区别与联系 一.sizeof    sizeof(.. ...

  9. 我也介绍下sizeof与strlen的区别

    本节我也介绍下sizeof与strlen的区别,很简单,就几条: 1. sizeof是C++中的一个关键字,而strlen是C语言中的一个函数:2. sizeof求的是系统分配的内存总量,而strle ...

  10. C++基础--sizeof和strlen的区别

    首先,来运行一段程序: #include "stdafx.h" #include <stdio.h> #include <string.h> int mai ...

随机推荐

  1. iscroll4 捕捉元素开发手机焦点图滑动效果

    html标准代码格式 <div id="wrapper"> <div id="scroller" > <ul id="t ...

  2. VC非法内存值的判断

    0xcdcdcdcd - Created but not initialised0xdddddddd - Deleted0xfeeefeee - Freed memory set by NT's he ...

  3. Delphi系统变量:IsMultiThread对MM的影响

    前几日,调试一BUG,过程先不说,最后调试到MM,即Debug dcu,然后进入到GetMem.inc中的Get/FreeMem函数处后,出现AV. 然后一通找...郁闷了N天,后来发现将MM切换到Q ...

  4. Flavors

    Flavors¶ Flavor interface. class novaclient.v1_1.flavors.Flavor(manager, info, loaded=False) Bases: ...

  5. ESET使用

    杀毒软件换了好几次,小红伞到ESET,感觉小红伞也可以但是就是更新上一直有些问题,所以狠心换成了ESET,这个安全套装感觉还是有模有样的.

  6. WIN7无法记住远程登录密码

    1.单点win7系统开始菜单——“运行”,然后输入“gpedit.msc”确定: 2.打开本地组策略后,依次展开:计算机配置 > 管理模板 > 系统 > 凭据分配: 3.双击右侧列表 ...

  7. OpenWrt自定义和官方一样的固件

    我用的OpenWrt版本是Barrier Breaker 14.07,硬件是NetGear WNDR4300. 我自定义固件的目的是把固件的根分区扩到最大(100MB,总FLASH是128MB),试过 ...

  8. linux shell 常用表达式汇总

    1. linux shell 逻辑运算符.逻辑表达式详解: http://www.cnblogs.com/chengmo/archive/2010/10/01/1839942.html

  9. Samba日志分析

    Samba日志分析 随着我们文件共享安全级别的提高,越来越多的情况下需要对日志进行记录并审计.Linux平台下的Samba服务的配置文件是smb.conf,有不少图形化配置工具例如Webmin.smb ...

  10. C#笔试(程序设计)

    1.如何把一个Array复制到ArrayList里,如何把ArrayList复制到Array里? foreach( object o in array )arrayList.Add(o); Array ...