第二章 2.2

    xiaoxiao2021-03-25  103

    2.2 变量

    2.2.1    变量定义

    1、变量定义的基本形式是:首先是类型说明符(type specifier),随后紧跟由一个或多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束。

    2、对象(object)是具有某种数据类型的内存空间。我们在使用对象这个词时,并不严格区分是类还是内置类型,也不区分是否命名或是否只读。(P39:何为对象)

    3、在C++语言中,初始化和赋值是两个完全不同的操作。然而在很多编程语言中二者的区别几乎可以忽略不计,即使在C++语言中有时这种区别也无关紧要。但需要强调的是,这个概念至关重要!初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而用一个新值替代。

    4、列表初始化(list initialization),是指用花括号来初始化变量。当用于内置类型的变量时,这种初始化形式有一个重要的特点:如果初始化存在丢失信息的风险,则编译器会报错。

    5、默认初始化:对于内置类型,定义于任何函数体之外的变量被初始化为0,定义于函数体内部的变量将不被初始化,其值将是未定义的。而类的对象的默认初始化值,由类本身决定。

    7、提示:使用未初始化的变量将带来无法预计的后果,因此建议初始化每一个内置类型的变量。(P41)

    2.2.2    变量声明与定义的关系

    1、分离式编译(separate compilation),允许将程序分割为若干个文件,每个文件可被独立编译。为了支持分离式编译,C++语言将声明与定义区分开来。声明(declaration)规定了变量的名字和类型,在这一点上定义与之相同,但定义还分配存储空间,并可能会给变量赋一个初始值。

    2、如果想声明一个变量而不是定义,使用关键字extern,并且不要显式地初始化它。任何包含了显示初始化的声明即成为定义。如果在函数体内部试图初始化一个由extern关键字标记的变量,将引发错误。

    3、声明和定义的区别看似微不足道,实则非常重要。如果要在多个文件中使用同一个变量,就必须要把声明与定义分离。此时,变量的定义必须且仅能出现在一个文件中,其他用到该变量的文件只能对其进行声明,却绝对不能重复定义。

    11、C++是一种静态类型(statically typed)的语言,其含义是在编译阶段进行类型检查(type checking),因此使用某个变量之前必须声明其类型。

    2.2.3    标识符

    12、变量命名规范,若能坚持,必将有效。具体要求:

    (1)标识符要能体现实际含义

    (2)变量名一般用小写字母

    (3)用户自定义的类名一般用大写字母开头

    (4)如果标识符有多个单词组成,则单词之间应有明显区分。

    2.2.4    变量的作用域

    13、建议:在对象第一次被使用的地方附近定义它是一种好的选择,因为这样做有助于更容易找到变量的定义。更重要的是,这样做也方便我们给它赋一个比较合理的初始值。另外,如果函数有可能用到某全局变量,则不宜再定义一个同名的局部变量。

    转载请注明原文地址: https://ju.6miu.com/read-16535.html

    最新回复(0)