静态数组,未赋值的默认情况下,元素值是0,非静态情况下是任意数值。
本代码是在数组未赋值的情况下,给数组中间部分元素赋值,printf("%s\n",str); 是当字符串访问,其结束符是‘\0’,所以当静态数组的时候,会什么也没显示,因为数组未赋值情况下元素默认是0或者是‘\0’(本质是一样的),如果是非静态数组,则会在输出几个乱码后结束,因为随机的默认值会随机出现‘\0’,导致结束
int main(int argc, char *argv[])
{
int i=2;
// static char str[30];
char str[30];
for (i=2;i<10;i++){
str[i]='q';
}
printf("%s\n",str);
for (i=8;i<20;i++){
printf("%c",str[i]);
}
printf("\n");
return 0;
}
//结果:
//?qqqqqqqq w?`
//qq w?` w