zoukankan      html  css  js  c++  java
  • sizeof 跟 strlen 的区别

      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) 参数只能是字符指针。并且注意,字符指针指向的字符串必须以 结尾(原因是strlen就是根据 来判断字符指针是否结尾。)

      另:数组名做函数参数的时候退化为指针。 但是上面可以看到 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  想想为什么吧。

      

  • 相关阅读:
    六种排序
    洛谷 P1879 [USACO06NOV]玉米田Corn Fields
    [USACO06NOV]玉米田Corn Fields
    c++位运算符 | & ^ ~ && ||,补码,反码
    Blockade(Bzoj1123)
    割点(Tarjan算法)【转载】
    子串
    生命是什么
    怎样说话才打动人
    自控力
  • 原文地址:https://www.cnblogs.com/kobe-echo/p/4311088.html
Copyright © 2011-2022 走看看