C语言 数组的小问题

静态数组,未赋值的默认情况下,元素值是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
发布了9 篇原创文章 · 获赞 0 · 访问量 90

猜你喜欢

转载自blog.csdn.net/ren_x_guo/article/details/104715963
今日推荐