`
java-mans
  • 浏览: 11514387 次
文章分类
社区版块
存档分类
最新评论

C++变量的初始化规则

 
阅读更多

如果在定义时我们没有对变量初始化,那么系统会帮你初始化变量。具体的初始化规则取决于变量的类型和它所处的位置。
对于内置类型,全局的,命名空间的,局部静态的变量都初始化为0,而函数体内变量不进行自动初始化。
对于类类型,通过默认构造函数进行初始化。如果没有定义默认构造函数,那么我们必须显式的初始化它,我们不能定义一个既没有构造函数,也没有显式初始化的类类型的变量。

分享到:
评论

相关推荐

    C++全局变量初始化的一点总结

     根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从...

    解决C++全局变量只能初始化不能赋值的问题

    C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...

    C++的变量默认初始化规则

    C++的变量默认初始化规则

    详解C++中变量的初始化规则

    函数体外定义的变量初始成0;函数体内定义的变量不进行自动初始化。除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都是未定义的,不要依赖未定义行为。 以int类型为例,一段简单的测试代码: #...

    C++类成员和数据成员初始化总结

    C++类成员和数据成员初始化总结 C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: ...类里面的任何成员变量在定义时是不能初始化的。 2.一般的数据成员可以在构造函数中初始化。

    C++ 怎么让静态变量只初始化一次

    童鞋们在学习C++的时候,往往只是按照书本上的原文去强行记忆各种特性,比方说,静态变量只初始化一次。你心中一定在默念:一定要记住,static只会初始化一次云云,希望自己能够记住。告诉你,你为什么总是记不住,...

    全局变量初始化导致的dll加载失败工程

    本附件是相关博文的示例工程,欢迎有需要的小伙伴下载。下载后使用vs2013直接可以编译测试。希望感兴趣的小伙伴能亲自动手实战。

    c++能不能给类的成员变量在声明的时候初始化? - life_limbo - 博客园1

    1. Re:Qt中关于release版本程序异常结束 2. Re:c++中指向对象的指针为NULL时可 3. Re:c++中指向对象的指针为NULL时可 5.

    关于C/C++中全局变量的初始化问题的深入思考

     前日,在一次C++课程上,刘老师在举例说明构造函数和析构函数的功能时,提到了全局变量初始化时的构造函数的行为。构造函数在main函数之前初始化全局变量。当然在C++下我是深信不疑的。但随后老师声称C语言下的...

    C++各变量的区别

    3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放。 4、...

    C++ 成员变量的初始化顺序问题详解

    C++ 成员变量的初始化顺序问题详解 问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, class A { private: int n1; int n2; public: A():n2(0),n1(n2+2){} void Print(){ cout <&...

    g++中的局部静态变量的初始化机制及线程安全

    在 C++ 中,局部静态变量的初始化机制是一种特殊的机制,它可以延迟初始化,直到第一次使用该变量时。这是一种 lazy initialization 机制,能够避免在程序启动时进行不必要的初始化操作。 Meyers Singleton 模式是 ...

    C++直接初始化和复制初始化

    现在正式对C++中对象建立和初始化做一个总结。  (1)复制初始化的基本原理  我们知道,对象在内存中的直接表象是在内存中占有一个一定大小的空间。分配空间是建立对象的第一步。但是刚刚分配的空间像一个没有...

    C++中类成员变量初始化总结

    考虑一下效率的可以再构造函数的初始化列表中进行。  class CA  {  public:  int data;  ……  public:  CA();  ……  };  CA::CA():data(0)//……#1……初始化列表方式  {  //data = 0;//...

    C++编程思想--第4章 初始化与清除

    初始化,甚至不知道必须要初始化时。(库中通常不包含初始化函数,所以用户不得不手工初 始化s t r u c t)。清除是一个特殊问题,因为 C程序员一旦用过了一个变量后就把它忘记了,所以 对一个库的s t r u c t来说...

    C++——字符串变量.txt

    定义字符串并进行初始化: string string1="chance"; 注意:必须要有头文件# include ; 比较:字符数组不能直接对字符变量进行赋值, 但是字符串变量可以,还可以用一个字符串变量给另一个字符串变量赋值; look :...

    C++ 构造函数初始化列表的好处

    C++ 类对像构造时,需要对类成员变量完成初始化赋值操作。使用初始化列表完成这步操作在性能上有益处。什么好处呢?摆道理显得不够彻底。看书不如做实验。让我们结合执行过程来查看。考虑如下示例代码:  ...

    C++中结构体的类型定义和初始化以及变量引用

    主要介绍了C++中结构体的类型定义和初始化以及变量引用,是C++入门学习中的基础知识,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics