课本149页。
第5章 数组。
里面有一个问题,
如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度,如
char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
数组c的长度自动定为10
这个貌似有点问题,运行环境:windowXp, vc6.0
代码:
#include<iostream>
using namespace std;
int main()
{
char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
cout<<strlen(c)<<" "<<c<<endl;
}
结果:(附图片)
用vs2008的结果是:
这里应该可以说,上面那种赋值方法,是不能定c[]的长度的。即c[]的长度是不定的。
由于系统在初始化的时候没有自动附上0
所以c[]的长度除了几个初始化的外,其余的都是随机的。
所以说,上面那个说法,应该是不正确。。起码,在vc,vs上是错的。