无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C/C++編程學(xué)習(xí)筆記:C++基礎(chǔ)之變量的聲明與初始化賦值

2020-04-06 16:07 作者:C語言編程__Plus  | 我要投稿

變量的聲明

所有變量必須在使用前進(jìn)行聲明,變量可以在使用前進(jìn)行聲明,不必在函數(shù)或過程的開始位置先聲明。

變量名規(guī)范

1. 名稱只能使用字母、數(shù)字、下劃線。

2. 名稱的第一個字符不能是數(shù)字。

3. 不能與C++關(guān)鍵字重名。

注:以下劃線開頭的變量名是系統(tǒng)專用的,盡量不要這樣命名。長度不要過長,最長盡量不要超過63。

變量聲明舉例

變量的初始化

1. 默認(rèn)初始化

默認(rèn)初始化是指定義變量時沒有指定初值時進(jìn)行的初始化操作。

內(nèi)置類型變量

若變量定義在語句塊(即{})外面,那么變量會被默認(rèn)初始化為0或等同于0的值。

若變量定義在語句塊里面,變量的值是不確定的。

為什么不初始化變量呢?給自己挖坑嗎?

類類型變量

無論定義于何處都會執(zhí)行默認(rèn)構(gòu)造函數(shù)。如果默認(rèn)構(gòu)造函數(shù)中沒有初始化變量,那么變量的值是不確定的。如果不 存在構(gòu)造函數(shù),編譯器會根據(jù)需要創(chuàng)建空默認(rèn)構(gòu)造函數(shù)。

2. 值初始化

值初始化是指用了初始化器但沒有提供初始值的情況。變量會被默認(rèn)初始化為0或等同于0的值。

3. 直接初始化

直接初始化就是指使用了初始化器并且提供了初值的情況。

對于類來說,直接初始化會調(diào)用與實(shí)參最佳匹配的構(gòu)造函數(shù)。

例如:int a(1);string str("hello");Test a(1,2,3);

4. 拷貝初始化

拷貝初始化就是用等號對變量進(jìn)行賦值的方法,即將右值拷貝給左值。

內(nèi)置類型變量

對于內(nèi)置類型變量來說,直接初始化與拷貝初始化差別幾乎可以忽略不計(jì)。

類類型變量

對于類類型變量來說,直接初始化會調(diào)用與實(shí)參最佳匹配的構(gòu)造函數(shù),但是拷貝初始化調(diào)用類的拷貝構(gòu)造函數(shù)。

*注:對類類型變量進(jìn)行初始化時,如果類的構(gòu)造函數(shù)采用了explicit修飾并且需要隱式類型轉(zhuǎn)換。此時只能通過直接初始化而不能通過拷貝初始化。

例如:

5. 列表初始化

在可以使用直接初始化和拷貝初始化的地方都能用列表初始化。列表初始化對容器的初始化同其他方法更方便一些。

對于容器

特別地,對于容器初始化時有()和{}兩種方法。

使用()

有一個參數(shù)時僅構(gòu)造容器。兩個參數(shù)時,第一個參數(shù)構(gòu)造容器,第二個初始化容器。

使用{}

如果參數(shù)序列的所有值均與容器類型相同,那么初始化時會將參數(shù)列表中的所有值放入容器中,容器的元素數(shù) 量和參數(shù)數(shù)量相同。

如果參數(shù)序列中的值與容器類型不同,那么會考慮將該值作為構(gòu)造容器的參數(shù);如果不能作為參數(shù)那么就會出 現(xiàn)編譯錯誤。

例如:

Copy

6. 動態(tài)分配時的初始化

動態(tài)分配時不加以初始化時,內(nèi)置數(shù)據(jù)類型的變量的值是不確定的。類類型變量將調(diào)用默認(rèn)構(gòu)造函數(shù)進(jìn)行初始化。

例如:

int* a = new int();

int* a = new int(123);

vector<int> *t1 = new vector<int> {1,2,3,4};

學(xué)習(xí)C/C++編程,了解C++更多知識歡迎關(guān)注UP,持續(xù)更新更多小知識一起成長呀~



C/C++編程學(xué)習(xí)筆記:C++基礎(chǔ)之變量的聲明與初始化賦值的評論 (共 條)

分享到微博請遵守國家法律
修水县| 丹阳市| 罗山县| 建平县| 湖南省| 嫩江县| 获嘉县| 沙洋县| 保亭| 六安市| 正安县| 阿拉善左旗| 西畴县| 乌鲁木齐市| 长春市| 宁德市| 衡阳市| 电白县| 芦山县| 麻江县| 邻水| 上林县| 五华县| 沾化县| 上高县| 儋州市| 永兴县| 贵溪市| 利川市| 泉州市| 绥棱县| 太湖县| 通榆县| 萝北县| 武安市| 山东省| 集安市| 西安市| 昌乐县| 大同县| 滦平县|