C++ sizeof,strlen()

1.sizeof
  • sizeof 的参数类型
  • int,int* ,int[ ]
  • char, char*,char[ ]
  • 数据类型
  • 代码说明
// 返回数据所占的字节数
	char charTest1 = 'a';
	char charTest2[10] = "Test";
	cout << "sizeof(char): \n";         
	cout << "sizeof(charTest1)= " << sizeof charTest1 << endl;
	//数组名与指针在绝大多数情况下是相同的
	//但是在此处就是不同的
	cout << "sizeof(char[]):\n"; 
	cout << "sizeof(charTest2)= " << sizeof charTest2 << endl;
	cout << "sizeof(char*):\n";
	cout << "sizeof(&charTest2[0])= " << sizeof & charTest2[0] << endl;

	int intTest1 = 1;
	int intTest2[10] = { 1,2,3,4,5 };
	cout << "sizeof(int): \n";
	cout << "sizeof(intTest1)= " << sizeof intTest1 << endl;
	cout << "sizeof(int[]):\n";
	cout << "sizeof(intTest2)= " << sizeof intTest2 << endl;
	cout << "sizeof(int*):\n";
	cout << "sizeof(&intTest2[0])= " << sizeof & intTest2[0] << endl;

	//sizeof编译时计算,不能用与动态数组的判断
	int* ptr = new int[10];
	cout << sizeof ptr << endl;
	//结果为4
	delete[] ptr;
  • 注意
  • sizeof 不是函数,而是操作符,因此可以对数据类型操作
  • sizeof 返回数组的容量大小,而不是元素的个数
  • sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型
2.strlen()
  • strlen()的参数类型
  • char[ ]
  • char*
  • 代码说明
	const char* charTest3 = "TestStrlen";
	cout << "strlen(char[]):\n";
	cout << "strlen(charTest2)= " << strlen(charTest2) << endl;
	cout << "strlen(char*):\n";
	cout << "strlen(charTest3)= " << strlen(charTest3) << endl;
  • 注意
  • strlen( )返回元素的个数
  • strlen( )遇到’\0’停止,并且’\0’不计数
  • strlen( )返回逻辑个数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值