关于static 定义的对象系统默认初始值

本文探讨了在C++中,static定义的二维数组如果没有显式初始化,系统会默认所有元素为0。通过实例代码验证了这一特性,并对比了非static变量的行为差异。
摘要由CSDN通过智能技术生成

       在Charles Petzold第五版的《windows程序设计》中,看到这样一些代码:

                        #define DEVISIONS 5

                       static BOOL fstate[DEVISIONS][DEVISIONS];

                       ........

                       if(x<DEVISIONS && y<DEVISIONS)
                                     fstate[x][y]=fstate[x][y]^1;

       一开始看到觉得很诧异,fstate[DEVISIONS][DEVISIONS]没有初始化啊,那怎样进行fstate[x][y]=fstate[x][y]^1啊?

     经过查阅和验证才知道,static定义的变量如果没有给他们初始化和赋初值,系统会默认为0或者“/0”的。

   验证如下: 

 

(在VC++6.0Z中)

#include<stdio.h>
#include<windows.h>

int main()
{
 static BOOL fstare[5][5];
 for(int i=0;i<5;i++)
 {
  for(int j=0;j<5;j++

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值