繁体   English   中英

静态与非静态变量C ++

[英]Static vs non-static variable C++

class Expression
{
    private:
       ToStringDisplay* toString;
    public:
        ......
};

   // Some code
   if (toString == NULL)
   // do something 

当我调试时,toString指向一个地址,而不是NULL。 但是如果我声明了static ToStringDisplay* toString; 改为toString引用NULL? 它们之间有什么区别?

作为C / C ++中的标准,如果没有另外说明,则静态变量始终初始化为null。 但是,对于非静态局部变量,没有这样的保证

静态成员变量根据http://www.learncpp.com/cpp-tutorial/811-static-member-variables/初始化为零,其中所有其他未定义,除非您明确地对其进行初始化,所以它们将具有任​​意随机值那是以前的记忆 有关静态和非静态的区别的解释,请参见上面的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM