sizeof 与 strlen 的一些用法及区别

1.sizeof的用法,返回值的类型是size_t,计算的是数据所占内存的空间,用字节表示

(1)用于变量的时候可以加括号或者不加括号,但建议加括号 例如 sizeof(a)

(2) 用于数据类型必须要用括号, sizeof(int)

(3)计算对象的大小是先转化成对象的类型在进行计算

(4)可以对函数调用求值,其结果是函数返回类型的大小,不能对函数名进行计算,无返回值的函数不能参加计算

(5)可以对表达式进行求值,实际上是根据表达式的最终结果类型来确定大小。

(6)结构体中的位域成员不能被计算sizeof值


2.strlen的参数时c风格的字符串,主要用来计算字符数组的长度,不区分参数类型是指针还是数组类型,以‘\0’为结束标志,且不将其计算在内。而sizeof在计算字符数组的长度时,会将占用的‘\0’计算在内。

	char dog[] = "wang\0miao";
	char* cat = "wang\0miao";
	char dog2[] = "wangmiao";
	char* cat2 = "wangmiao";
	cout << sizeof(dog) << "  "<<dog<<endl;//10
	cout << sizeof(cat) << "  "<< cat << endl;//4
	cout << sizeof(dog2) << "  " << dog2 << endl;//9
	cout << sizeof(cat2) << "  " << cat2 << endl;//4
	cout << strlen(dog) << "  "<<dog<<endl;//4
	cout << strlen(cat) << "  " << cat << endl;//4
	cout << strlen(dog2) << "  " << dog2 << endl;//8
	cout << strlen(cat2) << "  " << cat2 << endl;//8



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值