C语言--sizeof和strlen的区别

sizeof和strlen的区别
sizeof计算的是所有空间的大小
strlen计算的值为实际字符数
需要添加头文件#include

#include 
#include 

void test()
{
	
}
int main()
{
	char cdata[128] = "hello";
	void (*ptest)();
	ptest = test;
	printf("sizeof :%d\n",sizeof(cdata));
	printf("strlen: %d\n",strlen(cdata));
	char *p = "hello";//p是一个char *,sizeof来计算的时候,得出是计算机用多少字节来表示一个地址
	printf("sizeof:p      :%d\n",sizeof(p));
	printf("sizeof:char*  :%d\n",sizeof(char *));
	printf("sizeof:int*  :%d\n",sizeof(int *));
	printf("sizeof:char   :%d\n",sizeof(char));
	printf("sizeof:ptest   :%d\n",sizeof(ptest));
	printf("strlen        :%d\n",strlen(p));
	
	return 0;
}

sizeof: 128 。cdata的空间为128,sizeof计算的是所有空间的大小
strlen:5 。strlen计算的值为实际字符数

sizeof:p :8 。指针为8字节
sizeof:char* :8
sizeof:int* :8
sizeof:char :1 。char类为1字节
sizeof:ptest :8 。函数指针
strlen :5 。计算实际有效字符长度

你可能感兴趣的:(C语言,c语言,算法,开发语言)