C++ Primer笔记 - 变量

变量

初始值

当对象在创建时获得了一个特定的值,我们说这个对象被初始化了(initialized)。用于初始化变量的值可以是任意复杂的表达式。当一次定义了两个或多个变量时,对象的名字随着定义也就马上可以使用了。因此在同一条定义语句中,可以用先定义的变量值去初始化后定义的变量值。

// 两者都正确
double price = 109.99, discount = price * 0.16;
double salePrice = applyDiscount (prince, discount);

在C++语言中,初始化是一个异常复杂的问题。很多程序员对于用等号=来初始化变量的方式倍感困惑,这种方式容易让人认为初始化是赋值的一种。事实上在C++语言中,初始化和赋值是两个完全不同的操作。然而在很多编程语言中二者的区别几乎可以忽略不计,及时在C++语言中有时这种区别也无关紧要,所以人们特别容易把二者混为一谈。需要强调的是,这个概念至关重要,我们也将在后面不止一次提及这一点。

初始化不是复制,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。

列表初始化

C++定义了很多初始化方式,如下例所示:

int units_sold = 0;
int units_sold = {0};
int units_sold{0};
int units_sold(0);

都是赋值0给units_sold变量;花括号来初始化变量是C++ 11的新标准,得到了广泛应用,这种初始化形式被称为列表初始化(list initialization)。现在,无论是初始化对象还是某些时候为对象赋新值,都可以使用这样一组花括号括起来的初始化值了。

你可能感兴趣的:(C++ Primer笔记 - 变量)