首页 > 代码库 > Sizeof与Strlen的区别与联系

Sizeof与Strlen的区别与联系

1、 sizeof:

sizeof(...),是一个运算符,定义为unsigned in类型,其大小在编译期间决定的,参数可以是基本数据类型、数组、指针、对象、函数等。

功能:获得保证能容纳实现所建立的最大对象的字节大小。

   数组:数组所占空间字节数:

   指针:存储该指针所用的空间大小

   对象:该对象所占内存空间大小

二、strlen:

     strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
     功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL

	TCHAR* str0 = _T("12345");
	TCHAR buf[100] = _T("Hello");
	TCHAR buf1[100];

	_tcscpy(buf,str0);
	int len = _tcslen(buf);//结果:5
	len = sizeof(buf); //结果:200


Sizeof与Strlen的区别与联系