strlen()与sizeof

strlen()与sizeof

strlen()函数是用来计算一个字符串中的字符长度。

sizeof关键字是以字节为单位返回运算对象的大小。

对于一个字符串数组:char array[20] 来说,当我们将字符串 “ABCDEFG”填入数组后;

strlen(array) = 7,而sizeof(array) = 20。

即strlen()函数求的是字符串的实际长度,从数组开始到遇到第一个’\0’为止;

sizeof则是计算整个array的字节数。

两者的区别:

  1. sizeof是取字节运算符(关键字),strlen是函数。
  2. siezof 用于一个结构类型时或变量,返回实际的大小,用于数组时,返回全部数组的尺寸。
  3. strlen()函数求的是字符串的实际长度,从数组开始到遇到第一个’\0’为止,并且长度不包含’\0‘。
  4. 数组做sizeof的参数不退化;但数组作为strlen的参数会退化为指针。
  5. 对字符串进行sizeof操作的时候,会把字符串的结束符"\0"计算进去的,进行strlen操作求字符串的长度的时候,不计算\0的。
    如下列代码:
void Func(char str_arg[100]){
    printf("%d\n", sizeof(str_arg));
}
int main(void){
    char str[] = "Hello";
    printf("%d\n", sizeof(str));
    printf("%d\n", strlen(str));
    char*p = str;
    printf("%d\n", sizeof(p));
    Func(str);
}

判断32位系统下程序的输出结果为多少?

答案:6 5 4 4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值