strlen定义:
C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符
sizeof定义:
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、–等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。
char num[5] = "ab";
printf("sizeof(num):%d, strlen(num)%d \n", sizeof(num), strlen(num));
char *p_num = new char[5];
p_num = "abc";
printf("sizeof(p_num):%d, strlen(p_num):%d \n", sizeof(p_num), strlen(p_num);
输出结果:
sizeof(num):5, strlen(num):2
sizeof(p_num:8, strlen(p_num):3
分析:
数组num返回数值确定,指针数组sizeof返回的是什么值不太确定,strlen 返回的是存储数据长度,且可以超过指针长度。