sizeof和strlen的区别

发布时间 2023-05-07 21:59:38作者: muzixuanxuanxuan

1.sizeof和strlen的区别 strlen是头文件cstring中的函数,sizeof是c++的运算符,strlen测量的是字符串的实际长度,以\0结束,而sizeof测量的是对象或者表达式类型占用的字节大小

    size_t strlen(const char *str){
size_t length = 0;
while(*str++){
++length;
}
return length;
}

1.strlen是库函数,所以是在程序运行的过程中计算,而sizeof是在编译时计算,sizeof的参数可以是类型或变量,还可以是表达式,strlen的参数必须是char *类型

2.sizeof在运行时不会对表达式进行计算,只会推导表达式的类型从而计算占用的字节大小,而strlen是一个函数,如果接受表达式则会对表达式进行计算

    int x = 4;
char *s = "1234";
char *p = s;
sizeof(x++);
cout << x << endl;//4
cout << strlen(p++) << endl;//4
cout << p << endl;//234