sizeof和strlen区别
1、操作
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 返回的长度不包括 '\0'
而sizeof()返回的是变量声明后所占的内存数,不是实际长度。
2、参数类型
sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
short f();
printf("%d\n", sizeof(f()));
//输出的结果是sizeof(short),即2。
3、类型
sizeof是操作符(关键字),strlen是函数。
#include
#include
using namespace std;
int main(){
const char *str1 = "abcde";//字符串常量
char str2[] = "abcde";//字符数组
cout << sizeof(str1) << endl; //4
cout << sizeof(str2) << endl; //6
cout << strlen(str1) << endl; //5
cout << strlen(str2) << endl; //5
return 0;
}
/*
4 //str1指针大小
6 //加上 '\0'
5 //不加 '\0'
5 //不加 '\0'
*/