[C++] 變數宣告與定義

Alan Hsieh
Aug 29, 2022

--

介紹

不管是哪種程式語言,變數在使用前必定需要做宣告的動作,而像C、C++等程式語言還需要宣告變數類型,但宣告跟定義其實沒有我們想的這麼簡單,接下來我們就來熟悉C++內的變數宣告與定義。

變數初始化:Initialize

初始化,顧名思義就是在變數最開始宣告時指派值,有些人會將初始化視為指派,但其意義上依然有其不同的地方。而使用const與reference通常都會包含初始化的動作。

初始化與指派的差異在於,初始化是在變數宣告時就給予值,而指派值則是在變數已經宣告後把新值取代變數內的舊值。

List Initialize

List Initialize範例。

上面程式碼是C++初始化的範例,其中大括號的初始化(第2、3行)是C++ 11的方法,與普通初始化不一樣的地方在於,這種初始化不允許將較大的型別初始化給較小的型別,因為可能會有資料遺失的問題:

Default Initialization

當宣告變數沒有初始化時,在函數外宣告的變數會被初始化為0,而Class內的變數通常也會被預設建構子初始化,而在函數內的內建型別的變數則是未初始化的變數,其值會是垃圾值,使用上需要特別小心

變數宣告與定義

宣告簡單解釋就是我們讓程式知道他的名字,而定義則是表示這個變數有自己的實體。

核心觀念:靜態型別
C++在編譯時期會檢查每個變數的型別,稱作type checking,編譯器會檢查我們對於變數所進行的操作是否合法。

後記

這部分其實不是太重要,就是大概知道就好,後續會專注在比較重要的內容。

Reference

C++ Primer 5th edition

C/C++ 語言新手十三誡 — Ver. 2016

--

--

Alan Hsieh

畢業於中正大學電機所,目前在IC設計公司擔任工程師,主要分享Code、工作相關與股票心得。Contact me: preposterous9797@gmail.com