数组的默认值问题

acreep 2003-11-19 10:28:54
const int a = 6;
const int b = 6;
bool map[a][b];的所有默认值为1,
可是
static map[a][b]; 的默认值却是0,
有人能讲讲为什么吗?
我很困惑
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Meyer 2003-11-19
  • 打赏
  • 举报
回复
bool map[a][b];的所有默认值为1,
对于内置内型定义数组是不会初始化内存的
但对于类类型,却会施加default constructor
北极猩猩 2003-11-19
  • 打赏
  • 举报
回复
非静态变量是不会自动初始化的,得到1也是一个偶然事件。
michaelli 2003-11-19
  • 打赏
  • 举报
回复
静态的初始化为0,
不是静态就随机
arfi 2003-11-19
  • 打赏
  • 举报
回复
对于静态变量,与全局变量类似,默认初始化为0。
而对于一般的局部变量,不会对其进行初始化,因此其值是不定的。我在VC6上的结果是204
acreep 2003-11-19
  • 打赏
  • 举报
回复
上面应该是
static bool map[a][b];

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧