strlen和sizeof的区别与总结
strlen 是用来计算字符串的长度,遇到第一个NULL('\0')为止,不包括‘\0’。 sizeof 是用来计算变量或者对象、类型所占字节的多少。 首先来看一个例子: char s1[] = "hello"; char* s2 = "hello"; char s3[10] = ''hello"; sizeof(s1) = 5 strlen(s1) = 5 sizeof(s2) = 4 (在32位系统是4,在64系统是8) strlen(s2) = 5 sizeof(s3) = 10 strlen(s3) = 5 上面这个例子,根据strlen和sizeof的定义,难以理解的,大概是sizeof(s1)这个值了。首先要明白 s2是一个指针,对于指针,sizeof所得值,在32位系统是4,在64系统是8 对于数组,sizeof是计算该 数组所占字节数,而不是数组元素个数。 strlen而言,不管是数组还是指针,只要遇到第一个‘\0’就为止,hello字符串是这样的{‘h’, ‘e’,‘l’,‘l’,‘o’,‘\0’}的所以strlen(“hello”) = 5 sizeof可以有这些用法,sizeof(int)、sizeof(2)、sizeof(2+1)、 sizeof(f()) (int f(),f是一个函数,sizeof是返回值类型的大小,返回值是void