《C Primer Plus》學習筆記 六

2021-08-27 02:13:31 字數 2042 閱讀 6561

1、

定義函式

1、c++對於返回值有一定的限制:

不能是陣列

,但可以是其他任何型別——整數、浮點數、指標,甚至可以是結構和物件(

雖然不能直接返回陣列,但是將陣列作為結構或物件部分來返回

)。2、

函式如何返回值的?

函式通過返回值到指定的cpu暫存器或記憶體單元中來將其返回。隨後,呼叫程式將檢視該記憶體單元。呼叫函式是通過函式原型的定義得知該記憶體單元儲存的資料型別。

2、函式原型的功能:

1、編譯器正確處理函式返回值。

2、編譯器檢查使用的引數數目是否正確。

3、如果不正確,則轉換成正確的型別(如果可能的話)。

在編譯階段進行的原型化被稱為

靜態型別檢查

(statictypechecking)。可以捕獲許多在執行階段非常難以捕獲的錯誤。

3、函式引數和按值傳遞

1、形參(參量)

:接收傳遞值的變數;

實參(引數)

:傳遞給函式的值。

2、函式中宣告的變數(包括引數)是該函式私有的,呼叫結束自動釋放。

被稱為:

區域性變數、自動變數。

4、函式和陣列

用陣列作為引數的優缺點:

1、節省複製整個陣列所需的時間和記憶體。

2、增加了原始資料

被破壞的風險

。可以用

const

限定符來解決這個問題。--voidshow(constintarr,intn);這

並不是意味著原始陣列必須是常量,而是意味著不能在show()中使用arr修改資料

。這使得arr[0]+=10;的行為被禁止。

5、指標和const

1、指標指向乙個常量物件,可以防止使用該指標來修改所指向的值。

constint*pt=#

pt的宣告並不意味著它指向的值實際上是乙個常量,而是對於pt而言,這個量是常量,

不能通過pt修改num的值,但是可以更改pt指標的指向。

記住:如果資料型別本身並不是指標,則可以將const資料或非const資料的位址賦給指向const的指標,但只能將const資料的位址賦給非const指標。

2、將指標本身宣告為常量,

防止改變指標指向的位置

。int*constpt=#

可以通過pt修改num的值。

3、兩種均不能修改的方式:

constint*contpt=#

6、函式和結構

與單值變數行為很接近,也可以按值傳遞結構,

缺點:如果結構體非常大,則複製結構將增加記憶體要求,降低系統執行速度。----可以傳遞結構位址來解決。

voidshow(const

polar*pda)

7、函式指標

1、函式也有位址,函式的位址是儲存其機器語言**的記憶體的開始位址。

2、一定要區別傳遞的是函式的位址還是函式的返回值。

1、process(think);

使得process()

能夠在其內部呼叫think()函式;2、

thought(think());

首先呼叫think(),然後

將think()的返回值傳遞給thought()函式

。3、宣告函式指標

1、double(*pt)(int)

;(*pt)是函式,

pf是指向函式的指標。

2、double*pt(int);

因為()優先順序比*高,所有表示式以為著pf()為乙個返回指標的函式。(wrong!)

3、呼叫函式指標的例子:

double

betsy

(int);

double

pam(int);

void

estimate

(intlines,

double(*pf)(int)

);可以進行如下操作:1、

estimate

(line,

betsy

);2、

estimate

(line,

pam);

c primer plus學習筆記

1.變數名命名規則 重要的 1 有含義 2 只能用字母字元 數字和下劃線 3 第乙個字元不能是數字 4 區分大小寫 5 不能用c 關鍵字 2.整型 1 無符合型別不能表負值 2 char short 16 int short long 32,int 和longlong 64,long c 11 寬度...

C PrimerPlus學習筆記

if語句中判斷恒等,將常量放前,防止由於 寫成 造成的難以查詢的bug。if 0 count 若寫成 0 count 會報錯,count 0 則不會命名空間 using namespace std cout one cout two std cout one std cout two using s...

C Primer Plus學習筆記

1.組合語言是特地的cpu設計所採用的一組內部指令的助記符,不同的cpu型別使用不同的cpu c給予你更多的自由,也讓你承擔更多的風險 自由的代價是永遠的警惕 2.目標 檔案 可執行檔案和庫 3.可以用畫幾個盒子的方式來跟蹤乙個程式的變數 一門語言的語法就是一套規則,用於管理這種語言中的合法語句組織...