【C++】sizeof()、strlen()、length()、size()详解和区别

        sizeof()、strlen()、length()、size()均用于获取字符串长度

length():

        C++中,length()只用于获取字符串的长度。例如:

String str="abcdefg";

str.length()=7

size():

        除了与length一样可以获取字符串的长度,还可以获取vetor类型的长度

vector<int> n(15,3)//表示n中包含了15个值为3的元素

n.size()=15

 sizeof():

         sizeof()用以求对象所占内存空间大小

        //基本数据类型

        sizeof(char)=1;

        sizeof(int)=4;

        sizeof(float)=4;

        sizeof(long)=8;        

        sizeof(double)=8;

        sizeof(int *)=sizeof(float *)=sizeof(char *)=8;//指针型

        sizeof(String)=28

        //常量值的长度等同于它实际类型长度

        sizeof(1)=sizeof(int)=4;

        sizeof(1.11)=sizeof(double)=8

        //数组,计算应该计算到"\0"的位置

        char a[]="123456";sizeof(a)=6+1=7        //字符串默认结尾有一个"\0"

        int b[]={1,2,3,4,5};sizeof(b)=6        //b是数组,但不需计算到'\0'

        char *p=a;sizeof(*p)=1;        //*p指向a的第一个字符,大小为1

         char *q=b;sizeof(*q)=4;        //*p指向b的第一个字符,大小为4

        

        //获取数组长度

        int arr[]={1,2,3,4,5}

        sizeof(arr)/sizeof(arr[0])= sizeof(arr)/sizeof(*arr)= sizeof(arr)/sizeof(int)

strlen:

        返回字符数组或字符串所占的字节数,返回大小不包括'\0',如果只定义而不初始化,则结果是不定的,它会从aa首地址一直找下去,直到遇到'\0’结束。参数必须是字符型指针(char *),当数组名作为参数传入的时候,实际上数组已经退化为指针了。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值