关于sizeof和strlen的区别和用法

       一.需要明确strlen()是个字符串函数,是统计一个字符串从开始到"/0"(字符串结束)之间字符的个数(不包含"/0")。字符串可以是char *str1 = "asdaff";   也可以是字符数组形式 char str2[] = "asdadf";  都可以统计字符数量。

    二.sizeof是类型说明符,数组名或表达式,不是个函数,是判断数据类型长度的关键字。

    为了方便理解和记忆,给出几个典型例子。

                                                                        

char *str1 = "asdaf";                 strlen(str1) = 5          sizeof(str1)  = 8(仅仅是个指针)

char str2[10] = "asdfa";            strlen(str2) = 5           sizeof(str2)  = 10

char str3[] = "asdfa";                strlen(str3) = 5           sizeof(str3)  = 6(最后加个'\0')

int array1[] = {10, 15, 23};                                          sizeof(array1)  = 12

int array2[5] = {10, 15, 23};                                        sizeof(str1)  = 20


 

第一次写,写的感觉好乱。。。。。



再次补充,写了一个例子

3 int main(int ac, char **av)

4 {

5     char ac0[] = "abcdefghl";

6     char ac1[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g','h','l'};
    7     char *ac2 = "abcdefghl";
    8 
    9      printf("%d\n", strlen(ac0));
   10     printf("%d\n", strlen(ac1));
   11     printf("%d\n", strlen(ac2));
   12     printf("%d\n", sizeof(ac0));
   13     printf("%d\n", sizeof(ac1));
   14     printf("%d\n", sizeof(ac2));
   15 
   16     return 0;
   17 }



结果为

9

9

9

10

9

8


可以自己细细揣摩一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值