疑问代码:
void charTest()
{
char b[]="badcfeg";
int length2=sizeof(b)/sizeof(b[0]);
cout<<length2;
}
结果是8。
我原本是为了选择排序使用,但是程序结果出错。后来分析定位错误,原来是我长度搞错了。
原因分析:
char数组最后\0也占一位。
拓展:
void main()
{
char s[]="\12345s\n";
cout<<sizeof(s);
}
结果为6。
原因是:
\123被认为是一个字符,所以它是一个转义序列(八进制)。因此sizeof计算5个字符’\123’,‘4’,‘5’,‘s’,’\n’和结尾’\0’。