C语言sizeof和strlen区别


#include

int main()
{
	int n = 0;
	char *q = NULL;
	char s1[10] = {'w', 't', 'a', 'x'};
	char s2[8] = {'w', 'y', 'r', 'g', 'l', 'e', 't', 's'};
	printf("sizeof(n):%d\n",sizeof(n));
	printf("sizeof(q):%d\n",sizeof(q));
	printf("sizeof(s1):%d\n",sizeof(s1));
	printf("strlen(s1):%d\n",strlen(s1));
	printf("s1[9]:%s\n",s1[9]);
	
	printf("strlen(s2):%d\n",strlen(s2));
	
 } 


结果:
sizeof(n):4
sizeof(q):8    //可能是系统是64位,也可能是指针占8字节
sizeof(s1):10
strlen(s1):4
s1[9]:(null)
strlen(s2):11    //这里之所以是11,应该是由于超过了长度8之后,自动填充3个长度

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