strlen与sizeof区别(常见)

sizeof()计算出对象使用的最大字节数,strlen()计算字符串的实际长度

1、sizeof

//sizof是计算所占字节的大小
//sizeof(参数) 参数可以是数组,指针,类型,对象,函数
//数组——编译时分配的数组空间大小;根据数组类型而定,如int arr[0]是四个字节
//指针——存储该指针所用的空间大小(在32位机器上是4,64位机器上是8);
//类型——该类型所占的空间大小;如在32位中int是4个字节,char是1个字节
//对象——对象的实际占用空间大小;
//函数——函数的返回类型所占的空间大小。注:函数的返回类型不能是void。

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d", sizeof(arr));   //4*10=40个字节 4是代表数组arr是int类型,一个int是4个字节,有10个数字
	printf("%d", sizeof(arr[0]));//4个字节,表示数组中的一个数字
	printf("%d", sizeof(int));//4个字节,一个int是四个字节
	printf("%d", sizeof(arr)/sizeof(arr[0]));//10,可以算出数字arr里有多少个数字,可以算个数,也可相当于算长度一样
	printf("%d", sizeof(arr) / sizeof(int));//10,arr[0]与int是等价的

	return 0;
}

2、strlen

字符串的具体长度即字符个数

int main()
{
	char arr1 [] = "1,2,3";//错误,这不表示字符串
	char arr2 [] = "123";//正确
	int arr3[] = { 1,2,3 };//错误,int是整形,无长度(重点)
	printf("%d\n", strlen(arr2));//有一个字符串里有三个字符,所以打印出来的结果是 3
	return 0;
}

略微区别

1,sizeof 可以用char和int

 注:int是4个字节。每个元素都是int类型,每个元素是4个字节,有4个元素。  而char是1个字节

         所以其实这也可以表示长度

2、strlen 计算的是字符串的实际长度,遇到\0即停止,0不计入长度;sizeof 计算整个字符串所占内存字节数的大小,当然\0也要+1计算。

在字符串后面结尾后都会有\0,停止位 

    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值