- 相關(guān)推薦
C++語言的基本語法規(guī)則
C++是由AT&T Bell(貝爾)實驗室的Bjarne Stroustrup博士及其同事于20世紀(jì)80年代初在C語言的基礎(chǔ)上開發(fā)成功的。下面是小編收集的C++語言的基本語法規(guī)則,希望大家認(rèn)真閱讀!
C++語法表達(dá)式規(guī)則的建立基礎(chǔ)
C++ 中的布爾類型:布爾類型只占用一個bit ,但是如果連續(xù)定義多個布爾類型時,編譯器可能會多個布爾類型定義在一起。true 編譯器用1來表示。false 編譯器用0來表示。
將一個其他類型的數(shù)據(jù)賦給布爾類型變量:C++編譯器會將所有的非0的值轉(zhuǎn)換為true(1),將0 轉(zhuǎn)化為false(0)。
三木運算符 ? : :將一個三目運算符作為左值: (a>b?a:b) = 3 C語言不支持(三目運算符返回一個值),但在C++中支持(三目元算符返回變量)。 但是如果可能的返回值有一個是常量值,那么它就不能作為左值使用,如(a>b?1:b) = 3 非法。
引用:
C++中的引用:一個已經(jīng)定義的變量的別名。 Type var , Type & name = var; 普通引用在聲明時必須用其他的變量進(jìn)行初始化。引用作為函數(shù)參數(shù)聲明時不進(jìn)行初始化。
const 修飾引用:const 使引用擁有只讀屬性,但是變量本身還是原來的屬性。
當(dāng)使用常量對const 引用進(jìn)行初始化時,編譯器會給常量分配空間,并將引用名命名為這段空間的別名。不能給普通引用賦值為常量,但是可以給常引用賦值為常量。此時常引用是只讀的,除了在定義時,不能給它賦值。因此用一個常引用可以構(gòu)成一個只讀的變量,如 const int & a = 10 a是一個只讀變量。
引用在C++ 的內(nèi)部實現(xiàn)是一個常指針:type & name ßàtype* const name。因此引用擁有一個4字節(jié)的空間。
引用作為函數(shù)返回值:返回局部變量的引用時,引用不能作為左值,也不能用它初始化其他引用,但是如果引用時靜態(tài)的或者全局變量的引用時就可以。
C++ 函數(shù)探幽:
內(nèi)聯(lián)函數(shù):inline int function(…), 內(nèi)聯(lián)函數(shù)可以替代宏代碼片段,在編譯時將函數(shù)體直接替代函數(shù)被調(diào)用的地方,這樣就減少了普通函數(shù)被調(diào)用時 的開銷(壓棧,跳轉(zhuǎn)等),但是內(nèi)聯(lián)函數(shù)本質(zhì)上還是一個函數(shù),不同于宏代碼片段。內(nèi)聯(lián)函數(shù)聲明符inline 必須要和函數(shù)定義結(jié)合在一起,不能放在聲明處,否則編譯器忽略內(nèi)聯(lián)請求。 雖然內(nèi)聯(lián)函數(shù)省時省空間,但是編譯器不一定準(zhǔn)許函數(shù)的內(nèi)聯(lián)請求,當(dāng)C++編譯器不允許內(nèi)聯(lián)請求時會將內(nèi)聯(lián)函數(shù)當(dāng)做普通函數(shù)處理。
默認(rèn)參數(shù): C++中可以在函數(shù)聲明時為參數(shù)提供一個默認(rèn)值,當(dāng)函數(shù)調(diào)用時沒有提供這個參數(shù)的值,編譯器會自動用默認(rèn)值代替。但是在函數(shù)定義時就不在指定默認(rèn)參數(shù)值。默認(rèn)參數(shù)有如下規(guī)則:
只有參數(shù)列表后面的部分參數(shù)才可以提供默認(rèn)參數(shù)值,一但在一個函數(shù)調(diào)用中開始使用默認(rèn)參數(shù),那么這個參數(shù)后的所有參數(shù)都必須使用默認(rèn)參數(shù),因此從開始使用默認(rèn)參數(shù)的使用開始都后面的參數(shù)都要提供默認(rèn)參數(shù),否則編譯器將報錯?傊,在函數(shù)聲明時,如果一個參數(shù)開始提供默認(rèn)參數(shù),那么后面的所有參數(shù)都要提供默認(rèn)參數(shù);在調(diào)用函數(shù)時,如果開始省略參數(shù),那么后面所有參數(shù)都使用默認(rèn)參數(shù)。
函數(shù)占位參數(shù):占位參數(shù)是在函數(shù)定義時只有類型聲明,沒有參數(shù)名聲明的參數(shù)。一般情況下函數(shù)體內(nèi)部無法使用占位參數(shù)。但是在調(diào)用時必須提供完整的參數(shù)個數(shù)?梢越o占位參數(shù)提供默認(rèn)參數(shù)。意義:為函數(shù)的后續(xù)版本的擴(kuò)展埋下伏筆;兼容C語言中的不規(guī)范寫法。
函數(shù)重載:簡單來說函數(shù)重載就是用同一個函數(shù)名來定義不同的函數(shù)。那編譯器是如何區(qū)分這些函數(shù)的呢?事實上,編譯器是通過參數(shù)列表來區(qū)分重載了的函數(shù)。即重載函數(shù)擁有不同的參數(shù)列表。不同的參數(shù)列表包括參數(shù)個數(shù)不同、參數(shù)類型不同、參數(shù)順序不同,即滿足上述三個條件之一就能構(gòu)成重載函數(shù)。函數(shù)重載在構(gòu)造函數(shù)中是非常有用的。
【C++語言的基本語法規(guī)則】相關(guān)文章:
ASP基本的語法規(guī)則08-24
西班牙語虛擬式語法基本規(guī)則08-30
css的基本語法07-17
英語基本語法盤點10-26
PHP的基本語法的介紹10-08
日語基本語法句型08-03
小學(xué)英語基本語法08-18
英語基本語法總結(jié)06-28
小學(xué)英語的基本語法10-08
籃球基本規(guī)則05-20