C/C++strlen与sizeof的区别

strlen

函数原型:


size_t strlen(char const* _Str ); //size_t就是无符号整型

sizeof

函数原型:

size_t sizeof(类型\对象\);//size_t就是无符号整型

他们的区别如何?

先看例子:

#include 
#include 

int main()
{
	char buf[100];
	sprintf(buf, "hello");
	printf("strlen: %d\n", strlen(buf));
	printf("sizeof: %d\n", sizeof(buf));

}

执行结果:
C/C++strlen与sizeof的区别_第1张图片
如图所得他们的区别:
strlen是指buf实际使用了的大小,hello刚刚好5个字符。
sizeof是指buf最大能使用的大小,前面定义了是100。
就如一个水杯的容量为500毫升,sizeof就是指这个;你把水杯装了一半的水,那么水就有250毫升,strlen就是指这个。

你可能感兴趣的:(C++,c++)