丶echo

导航

 

  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  想想为什么吧。

  

 

posted on 2015-03-03 15:31  丶Echo  阅读(178)  评论(0编辑  收藏  举报