定义二维字符数组只初始化部分值,,没有赋值的项是默认为空格么?代码如下

#include<iostream.h>
int main()
{
static char diamond[][5]={{' ',' ','*'}, {' ','*',' ','*'}, {'*',' ',' ',' ','*'}, {' ','*',' ','*'}, {' ',' ','*'}};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<diamond[i][j];
cout<<endl;
}
return 0;

}

没有赋值的,可能是数值 0,也可能是不确定值。你可以打印出来看,例如:
cout<< "d[0][4]="<< (int) diamond[0][4] << endl;
不是空格。空格 ASCII 值是 32,你可以打印出来看,例如:
cout<< "space="<< (int) ' ' << endl;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-22
没有赋值是乱码,是内存里之前前保存过的字符。
第2个回答  2018-03-24
①byte short int long 这四种基本数据类型数组默认值为0
②float double 这两种数组默认值是0.0
③char这种类型数组默认值为空格!!
④boolean类型数组默认值为false
相似回答