C++中new ,strlen ,sizeof的用法

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:58:01
代码如下:
char *ch=new char;
sizeof(ch)=4;
strlen(ch)=5;
想问一下,为什么strlen(ch)=5;

sizeof(ch)==4是因为ch的类型是char*, 指针现在都是4字节;

因为ch是由new分配的,ch所指向的内存并没有被初始化,所以它指向的内容是随机的;
而strlen函数是查找到字符串结束字符‘\0‘结束,所以strlen(ch)有可能等于任何值,这取决于你的编译器。

char *ch=new char;
sizeof(ch)=4;
strlen(ch)=5;
strlen函数是查找到字符串结束字符‘\0‘结束的,strlen是用来计算字符串的长度,而不是计算类型占内存的大小。

strlen函数是查找到字符串结束字符‘\0‘结束的

strlen只是用来计算字符串的长度,zizeof是计算某类型在内存中所占空间的大小

strlen函数是查找到字符串结束字符‘\0‘结束的,strlen是用来计算字符串的长度,而不是计算类型占内存的大小。

strlen()是计算C风格的字符串长度的,C风格字符串后面都会自动加上'\0',所以返回值是5;而sizeof()是返回指向char的指针的大小,指针大小都为4。