zoukankan      html  css  js  c++  java
  • C++中的变量初始化

      如果定义变量时没有指定初始值,则变量被默认初始化,此时变量被赋予了“默认值”。默认值到底是什么由变量类型决定,同时定义变量的位置也会对此有影响。

      如果是内置类型的变量未被显式初始化,它的值由定义的位置觉得。定义于任何函数体之外的变量被初始化为0。一种例外情况是,定义在函数体内部的内置类型变量将不被初始化。一个未被初始化的内置类型变量的值是未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。

      每个类各自决定其初始化对象的方式。而且,是否允许未经初始化就定义对象也由类自己决定。如果类允许这种行为,它将决定对象的初始值到底是什么。

      绝大多数类都支持无须显式初始化而定义对象,这样的类提供了一个合适的默认值。例如,string类规定如果没有指定初值则生成一个空串:

      std::string empty;

      一些类要求每个对象都显式初始化,此时如果创建了一个该类的对象而未对其做明确的初始化操作,将引发错误。

      定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。类的对象如果没有显式地初始化,则其值由类确定。

  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/csudanli/p/5207091.html
Copyright © 2011-2022 走看看