C语言| 关于关键字sizeof和函数strlen的区别

首先我们必须要清楚地定义是:
   strlen是函数 but sizeof 是关键字

char arr1[] = “abc”;
char arr2[] = { ‘a’,‘b’,‘c’ };            结果
1>>   printf("%d\n", sizeof(arr1));       4
2>>   printf("%d\n", sizeof(arr2)); 	  3
3>>   printf("%d\n", strlen(arr1));       3
4>>   printf("%d\n", strlen(arr2));       随机数15

通过对比,不难发现:

 - sizeof 
 -计算的是 **arr所占空间的大小** (==包括\0==) 
比如有n个元素*1(如果每个元素一个字节)=n
 - strlen 
 -求字符串长度 找到‘\0’就会停止 并且\0==不算入== \0之前的字符个数

那么就可以知道两者的区别:

1.简单地说 sizeof计算空间算\0
但是
strlen计算长度不算\0
2.strlen只能求字符串长度——并且是库函数,使用时要引头文件

scanf函数读取到空格就会停止,不读了,之后的内容也不会读入内存之中,

并且会在空格处放置一个’\n’来结束读入

可以使用

while ((i = getchar()) != EOF)//当读取到的不是\n的时候,就getchar()吞掉
	{
		getchar();
	}

gets可以直接读取一行(直到碰到\n,否则一直读取),不管是否有空格

而sizeof是计算变量、数组、类型的大小-单位是字节——本质是操作符 不需引头文件

如果想要进一步了解数组的相关知识,请移步
C语言—>数组超详解
C语言博客

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值