C++ Primer學(xué)習(xí)筆記——變量
????變量與對象
在C語言中并沒有對象這一種概念,因為C語言是面向過程的語言,而c++是面向?qū)ο缶幊痰恼Z言,同時對象可以描述某些具體的類的實例,對象這一說法在c++中與變量等同。
變量的初始值
變量的初始值牽扯到如何對一個對象進行初始化的問題,然而在c++中,初始化也是一個很復(fù)雜的問題(構(gòu)造函數(shù),=運算符的重載等),因此在該節(jié)先明白一點即可,就是初始化就是初始化,賦值就是賦值,兩者有著很大的區(qū)別。初始化是對某個剛創(chuàng)建的變量賦一個初始值,而賦值是指將變量的當(dāng)前值擦除,并賦予新值。
在c++中,初始化和賦值是兩種不同的操作!
在c++中,初始化和賦值是兩種不同的操作!
在c++中,初始化和賦值是兩種不同的操作!
列表初始化
變量初始化中,有種初始化方式叫做列表初始化,它是c++11標(biāo)準(zhǔn)中的新內(nèi)容,后續(xù)會專門寫篇文章來講解列表初始化。
默認(rèn)初始化
默認(rèn)初始化的意思就是:當(dāng)定義了某種類型的變量時,并未對它進行顯式初始化,那么變量就會被默認(rèn)地初始化一個值,這個值具體要看是什么類型。
定義在函數(shù)體外的內(nèi)置類型變量在被默認(rèn)初始化后,會被初始化為0。
類的默認(rèn)初始化。因為類都通過構(gòu)造函數(shù)來對類內(nèi)數(shù)據(jù)成員進行初始化,因此在創(chuàng)建某個類的對象時,假如沒有為其進行顯式初始化,那么該對象會通過類內(nèi)定義的默認(rèn)構(gòu)造函數(shù)來進行默認(rèn)初始化,說白了,類的默認(rèn)初始化也就是由類來控制。(這里c++ primer沒有講那么多,up主拓展一下)
內(nèi)置變量的默認(rèn)初始化。內(nèi)置變量默認(rèn)初始化后的值是未知(書上講的是“未定義的”),使用默認(rèn)初始化后的內(nèi)置變量也是危險的,因為我們不知道什么時候會一不小心使用到它,而后造成一些莫名其妙的bug。
變量的聲明與定義
變量的聲明實際上是想讓其他程序或其他文件知道該變量的存在和“宣布”其變量名,方便使用它。定義則是在聲明的基礎(chǔ)之上,對這個變量開辟內(nèi)存空間,并進行初始化。
一個變量可以被多次聲明,但是能被定義一次。
? ? 標(biāo)識符就沒啥好講的了,略過。
????作用域
作用域由花括號分隔。
??????只舉個例子:

