关于 strlen 与 sizeof 的区别

关于 strlen 与 sizeof 的区别

[面试题]sizeof与strlen的区别

#include <stdio.h>

int main()
{
	const char *p1 ="Hello World";
	char p2[]="hello world";
	char p3[10]="hello";
	char *parr=(char *)malloc(sizeof(char)*10);
	printf("sizeof(p1):%d strlen(p1):%d\n",sizeof(p1),strlen(p1));
	printf("sizeof(p2):%d strlen(p2):%d\n",sizeof(p2),strlen(p2));
	printf("sizeof(p3):%d strlen(p3):%d\n",sizeof(p3),strlen(p3));
	printf("sizeof(parr):%d strlen(parr):%d sizeof(*parr):%d\n",sizeof(parr),strlen(parr),sizeof(*parr));
	return 0;
}

xc@xc:~/test$ ./a.out
sizeof(p1):8 strlen(p1):11
sizeof(p2):12 strlen(p2):11
sizeof(p3):10 strlen(p3):5
sizeof(parr):8 strlen(parr):0 sizeof(*parr):1

猜你喜欢

转载自blog.csdn.net/m0_37561165/article/details/80318284