C语言-sizeof 和 strlen区别

C语言-sizeof 和 strlen区别

1. 例子说明

char a[] = "hello world";
char b[100] = "hello world";
char *p = a;
/* sizeof */
printf("%d \n",sizeof(a));      //12字节  由于数组最初没有定大小,由具体值来填充包括'\0'结束符
printf("%d \n",sizeof(b));      //100字节  这个数组开始预分配100,所以它的大小就是100*1=100 
				     		  //注意这两个的区别!!!
printf("%d \n",sizeof(p));      //4字节 指针大小为4字节 (32位系统下)
char q1[] = "a\n"; sizeof (q1)=3;// 因为\n 算作一位

/* strlen*/
printf("%d \n",strlen(a));      //11字节   不包括‘\0’结束符
printf("%d \n",strlen(b));      //11字节  strlen仅仅计算字符串的实际大小

2. 总结

  1. sizeof 是运算符;strlen 是函数。
  2. sizeof 可以用类型做参数;strlen 只能用char *做参数,而且必须是以"\0"结尾的。
  3. sizeof 编译时执行;strlen 运行时计算出来,计算字符串的长度
  4. sizeof包括\0,strlen不包括\0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值