0%

strlen和sizeof

  1. sizeof是运算符,在编译时便得到结果;strlen是<string.h>库里的函数。
  2. strlen 函数用于计算以空字符 \0 结尾的字符串的长度,即字符串中的字符数(不包括空字符 \0

sizeof 操作符用于获取数据类型或对象在内存中的大小,单位为字节,对于数组,返回的是整个数组的大小。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>

int main(){
const char* tmp = "stars";
char str[] = "stars";
char arr[10] = "spiderman";

printf("%d\n", sizeof(tmp));//8,计算的是char*的大小,64为系统中char*为8
printf("%d\n", strlen(tmp));//4,字符数

printf("%d\n", sizeof(str));//5,计算的是数组大小,即“stars\0”共五个元素,每个元素占1字节
printf("%d\n", strlen(str));//4,字符数

printf("%d\n", sizeof(arr));//10,数组大小1*10
printf("%d\n", strlen(arr));//9,字符数
return 0;
}