c++代码看不懂

来源:百度知道 编辑:UC知道 时间:2024/09/27 15:33:00
char *p = new char[2];
*p = '\x62'; // b
*(p+1) = '\x61'; // a

cout<<"strlen(p) = "<<strlen(p)<<endl;

为什么打印出来长度是6?

应该是个随机数

因为strlen是碰到'\0'的时候返回大小,你这个数组里根本没有这个符号,返回6是正好第7个字符是'\0'

改为
char *p = new char[3];
*p = '\x62'; // b
*(p+1) = '\x61'; // a
*(p+2)='\0';