C C 基礎知識總結 函式

2022-08-05 09:06:19 字數 1475 閱讀 5701

1. 隨機函式的使用

1.1 標頭檔案: # include 或 # include

1.2 用法

srand(int seed);//偽隨機,傳隨機種子

int d = 1 + rand()%6;//生成1-6隨機數

2. 函式的引數傳遞

2.1 函式未被呼叫時,函式的形參不占有記憶體空間,也沒有實際的值。只有在函式被呼叫時才為形參分配儲存單元,並將形參與實參結合

2.2 值傳遞

(1) 值傳遞是發生函式呼叫時,為形參分配空間,並用實參來初始化形參。一旦形參獲得值,與實參再無關係,不會影響到實參

2.3 引用傳遞

(1) 引用是一種特殊型別的變數,可以被認為是另乙個變數的別名,記憶體空間是一樣的

(2) 宣告乙個引用時,必須初始化,使他指向乙個已經存在的物件

int i;

int &r1 = i;

(3) 一旦乙個引用被初始化後不能改為指向其他物件

(4) 應用可以作為形參,在呼叫函式時對形參進行初始化,這樣形參就成為實參的乙個別名,對形參的操作影響實參。

2.4 位址(指標)傳遞

3. 內聯函式

3.1 對於一些功能簡單,規模較小的函式,且經常重複使用的函式,可以設計為內聯函式

3.2 內聯函式不是在呼叫時發生轉移而是在編譯的時候將函式體嵌入在呼叫處

3.3 用法

(1) inline  型別說明符     函式名(形參)

3.4 與巨集定義的區別

(1)內聯函式和普通函式相比可以加快程式執行速度,因為不需要中斷呼叫,在編譯的時候可以直接鑲嵌到目標**中。巨集只是乙個簡單的替換

(2)內聯函式需要做型別檢查,這是內聯函式跟巨集相比的優勢

(3)inline是指嵌入**,在呼叫函式的時候不是跳轉,而是直接把**寫到那裡去。對於短小**來說,inline可以帶來一定效率的提公升,而且和巨集相比,      inline更安全。但是以消耗空間為代價的。巨集是在**處不加任何驗證的簡單替代,巨集不是函式。inline是函式,但在編譯中不產生**,而是將有關代      碼嵌入到呼叫處

(4)巨集在c語言中非常重要,在c++中就沒那麼重要了。巨集的第一條規則是:絕不應該使用它,除非必須這麼做。幾乎每個巨集都表明了程式語言裡、      程式裡或者程式設計師的乙個缺陷,因為它將在編譯器看到程式正文之前重新擺布這些正文。

4. 帶預設引數的形參

4.1 有預設值的形參必須在參數列最後,這個比較好理解

4.2 在相同的作用域裡,不允許在同乙個函式的多個宣告中對同乙個引數的預設值重複定義,即使前後定義的值相同也不行

int add(int x = 5; int y = 6);//宣告時可以預設值,同作用域的其他宣告不能有

int main()

int add(int x /* = 5 */, int y /* = 6 */) //定義時不能有預設值

C C 基礎知識

c 基礎知識 定義在class宣告內的成員函式預設是inline函式 進製 問 假設在n進製下,等式 240 12 2880 成立,n值是 a 19 b 18 c 17 d 16 e 15 f 以上都對 答 2 n 2 4 n 1 1 n 2 2 n 3 8 n 2 8 n 1 化簡後為恒等式,故n...

C C 基礎知識

乙個指標可以被多次賦值,但是引用只可以在建立的時候就必須初始化,初始化完畢後就不可改變 乙個指標有它自己的記憶體位址和棧上的大小 x86上面為4byte 但是引用與原有變數共享相同的記憶體位址,但是在棧上仍然占用一些記憶體空間。指標可以指向null,但是引用必須引用乙個有效的物件 乙個指標需要使用 ...

c c 基礎知識

include includeint main else system pause return 0 計算機的原碼用於表示,有符號的前提最高位為符號位,0為正數,1代表負數,其餘各位為數值本身的絕對值,無符號就是資料的絕對值 反碼 正數,反碼與原碼相同 負數,符號位為1,其餘為對原碼取反 補碼 原碼...