国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

第二章 變量和基本類型——2.3 變量

2019-11-08 20:19:49
字體:
來源:轉載
供稿:網友

2.3.1 什么是變量


變量,提供了程序可以操作的有名字的存儲區。

左值(lvalue):變量的地址,或者是一個表示“對象在內存中的位置”的表達式。

右值(rvalue):變量的值。

//val1為左值,而val2和8為右值int val1 = val2 + 8;

2.3.2 變量名


變量名,即變量的標識符(identifier)

由字母、數字和下劃線組成不能以數字開頭

2.3.3 定義對象


1. 初始化

在定義變量時,C++有兩種初始化方式:賦值初始化直接初始化

int ival(1024); //直接初始化 int ival = 1024; //復制初始化

初始化是在指在創建變量的時候給它賦初始值;而賦值是指擦除對象的隨機值后再賦新值。兩者之間的關系在后續學習中了解,現在我們需要知道的是:直接初始化更靈活且效率更高!

2. 使用多個初始化式

定義如何進行初始化的成員函數稱為構造函數(constructor),通過構造函數實現不同的初始化方式。

#include <string>std::string titleA = "C++ PRimer, 4th Ed.";std::string titleB("C++ Primer, 4th Ed.");std::string all_nines(10,'9'); //all_nines = "9999999999"

3. 初始化多個變量

可以用同一個定義中前面定義的變量來初始化后面的變量

double salary = 9999.99, wage (salary + 0.01);

一個定義中,可以同時存在初始化和非初始化的變量

int interval, month = 8; day = 7; year(1955);

2.3.4 變量初始化規則


當我們沒有初始化變量時,系統有時會為我們初始化變量。

1. 內置類型變量的初始化

是否自動初始化取決于該變量的位置

在函數體外,則都初始化為0在函數體內,則不進行初始化

Tips:

建議每個內置類型的對象都要初始化!

2. 類類型變量的初始化

初始化取決于自身定義的構造函數或者在未定義構造函數情況下的默認構造函數(default constructor)

2.3.5 聲明和定義


有一個問題不知各位想過沒有:如果我在一個.cpp文件中定義了一個變量,然而,我想在另一個.cpp文件中也是用這個變量,該怎么實現呢?C++為我們設計好了解決方法:聲明定義

定義(definition):用于為變量分配存儲空間,還可以為變量指定初始值。一個程序中,變量有且僅有一次定義。

聲明(declaration):用于向程序表明變量的類型和名字。使用關鍵字extern聲明變量名而不定義它,只是說明變量定義在程序的其他地方,因此聲明并不會為變量分配存儲空間。

Tips:

extern聲明位于函數外部時,其可以含有初始化式從而可以視為定義。

extern double pi = 3.1416; //This is a definition

任何在多個文件中使用的變量(如extern double pi = 3.1416;),都需要有與定義分離的聲明!在這種情況下,一個文件含有變量的定義,在其他使用到該變量的文件中則應包含該變量的聲明。

2.3.6 名字的作用域


不用多說,看程序即可:

#include <iostream>#include <string>std::string s1 = "hello"; //s1 has global scope(全局作用域)int main() //main has global scope{ std::string s2 = "world"; //s2 has local scope(局部作用域) //use global s1; print "hello world" std::cout << s1 << " " << s2 << std::endl; int s1 = 42; //s1 is local and hides(屏蔽) global s1 for(int val = 1; val <= 10; ++val) //val is statement scope(語句作用域) std::cout << s1 << " " << s2 << std::endl; //print "42 world" 10 times return 0;}

Tips:

通常把一個對象定義在它首次使用的地方是一個很好的方法!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄龙县| 保德县| 洛隆县| 普洱| 阳西县| 百色市| 磴口县| 保德县| 特克斯县| 宁夏| 宣武区| 抚顺县| 镇远县| 即墨市| 阿克陶县| 武穴市| 武清区| 北辰区| 彭水| 建昌县| 金湖县| 黄浦区| 青浦区| 津南区| 韶山市| 胶州市| 玉溪市| 抚州市| 本溪| 扶沟县| 中超| 长岭县| 林州市| 精河县| 灵宝市| 常州市| 土默特左旗| 五峰| 镇康县| 来宾市| 安陆市|