第四 五 六章 表示式與函式

2021-07-09 23:19:15 字數 2670 閱讀 5936

1.左值和右值

左值為物件的身份(記憶體的位置),所有具名變數均為左值,即可定址。

右值為物件的值(內容)

原始字面值,如0,「abc」等

表示式返回值

lambda表示式

非引用返回值

2.decltype

左值為引用,右值為型別

3.結果未定義

cout<< i<<

" "<<

++i<< endl;

4.bool 問題

bool b =

true

;bool b2=

-b;//仍為true,因為-b不為0

5.模運算

m%

(-n)

= m%n

(-m)%n =

-(m%n)

6.解引用運算優先順序

*p++

;//等價於 *(p++)

*iter.

empty()

;//等價於 *(iter.empty()) //編譯錯誤

7.轉換

8.頂層const無法使函式過載

void

fcn(

const

int i)

;void

fcn(

int i)

;//屬於重複定義

void

fcn(

const

int&r)

;void

fcn(

int&r)

;//底層const可以作為過載

9.不要返回區域性物件的指標或引用

10.一旦某個形參被賦予了預設實參,則它後面的所有形參都必須有預設實參

11.constexpr和內聯函式放在標頭檔案中(即可多次定義)

編譯器想要展開函式僅有函式宣告是不夠的,還需要函式的定義

12.assert(expr)預處理巨集

當expr為假時輸出資訊並終止程式的執行,可以assert(expr&&「出錯資訊」)輸出錯誤資訊便於除錯

若定義了ndebug則assert什麼也不做

13.候選函式與可行函式

voidf(

) ①

voidf(

int) ②

voidf(

int,

int) ③

voidf(

double

,double

=3.14

) ④

當呼叫f(5.6)時,候選函式為(①②③④),可行函式為(②④),最佳匹配為④

14.函式指標與函式返回值

bool

(*pf)(.

..)//函式指標

bool*pf

(...

)//函式返回值為指向bool的指標

15.跳轉語句goto

goto label;

label:

return

;//帶標籤語句,可以作為goto的目標

16.try語句塊和異常處理

try

catch

(const myexception& e)

17.區域性物件

18.宣告乙個返回陣列指標的函式

int(*

func

(int i))[

10];auto

func

(int i)

->

int(*)

[10];

//尾置返回型別

19.含有可變形參的函式

void

err_msg

(initializer_list il)

err_msg

()

20.main處理命令列選項

int

main

(int argc,

char

*argv)

;//argv是個陣列,元素是指向c風格字串的指標

intmain

(int argc,

char

**argv)

;

21.函式作用域

如果我們在內層作用域中宣告名字,它將隱藏外層作用域中宣告的同名實體,在不同的作用域中無法過載函式名。

函式與lambda表示式

lambda表示式是python中一類特殊的定義函式的形式,使用它可以定義乙個匿名函式。與其它語言不同,python的lambda表示式的函式體只能有單獨的一條語句,也就是返回值表示式語句。其語法如下 lambda 形參列表 函式返回值表示式語句 常規函式 def comp x return x a...

函式與Lambda表示式

def myfirstfunction name 函式定義過程中name是形參 因為ta只是乙個形式,表示佔據乙個引數位置 print 傳遞進來的叫做實參,因為ta是具體的引數值!format name myfirstfunction 老馬的程式人生 傳遞進來的老馬的程式人生叫做實參,因為ta是具體...

函式與Lambda表示式

學習人員 賈其豪 函式定義預設值引數 函式定義時,給形參設定預設值,只有與預設值不符的時候才需要傳遞實參 deffun a,b 10 b稱為預設值引數 print a,b 函式的呼叫 fun 100 fun 20,30 個數可變的位置引數 定義函式時,可能無法事先確定傳遞的位置實參的個數時,使用可變...