C 筆記1 6 函式

2021-09-26 01:18:47 字數 1348 閱讀 4873

在定義函式時函式名後面括號中的變數名稱為形式引數(formal parameter,簡稱形參),

在主調函式中呼叫乙個函式時,函式名後面括號中的引數(可以是乙個表示式)稱為實際引數(actual parameter,簡稱實參)。

形參不佔儲存單元。實參與形參,個數相等,型別匹配。

呼叫函式在main函式之後要先宣告,

在編譯時將所呼叫函式的**直接嵌入到主調函式中,而不是將流程轉出去。

這種嵌入到主調函式中的函式稱為內建函式(inline function),又稱內嵌函式

inline int max(int,int, int); //宣告函式,注意左端有inline

只有那些規模較小而又被頻繁呼叫的簡單函式,才適合於宣告為inline函式。

函式模板

template//模板宣告,其中t為型別引數

t max(t a,t b,t c) //定義乙個通用函式,用t作虛擬的型別名

template

變數的有效範圍稱為變數的作用域(scope)。

歸納起來,變數有4種不同的作用域

檔案作用域(file scope)、

函式作用域(function scope)、

塊作用域(block scope)和函式原型作用域(function prototype scope)。

檔案作用域是全域性的,其他三者是區域性的。

除了變數之外,任何以識別符號代表的實體都有作用域,概念與變數的作用域相似。

static宣告靜態區域性變數,函式呼叫後保留原值,儲存單元不釋放,只賦初值一次,若不賦初值的話,自動賦初值0或空字元。

static宣告靜態外部變數,只能用於本檔案的外部變數。

register宣告暫存器變數,訪問速度高, register int i ,f =1;

extern宣告外部變數和全域性變數,全域性就是幾個函式都可以用。

外部就是在別的檔案中已經定義了,。(別的檔案已經定義)

把建立儲存空間的宣告叫定義

把不需要儲存空間的宣告叫宣告

#include 「檔案路徑」          尋找要包含的檔案

#ifdef 識別符號

程式段1

#else

程式段2

#endif

它的作用是當所指定的識別符號已經被#define命令定義過,則在程式編譯階段只編譯程式段1,

否則編譯程式段2。#endif用來限定#ifdef命令的範圍。其中#else部分也可以沒有。

int main( )

c 學習筆記 16

普通函式與函式模板的區別 普通函式呼叫時可以發生自動型別轉換 隱式型別轉換 函式模板呼叫時,如果利用自動型別推導,不會發生隱式型別轉換 如果利用顯示指定型別的方式,可以發生隱式型別轉換 int add1 int a,int b int a 10 char c a cout add1 a,c temp...

C 16 虛函式

include stdafx.h include iostream.h class pet class dog public pet void feeding pet p 問題1.什麼叫做前繫結 early binding 和後繫結 later binding 問題2.virtual會自動繼承嗎?如...

c 學習筆記 16 遞迴

遞迴 能夠解決那些難以用簡單迴圈解決的問題 例如 八皇后問題,階乘 遞迴函式 呼叫自身的函式 1.階乘 0 1 1!1 n n n 1 n 1 n 1 n 2 假設函式factorial n 為求n 如果呼叫到n 0的情況,函式直接返回結果,函式知道如何求解最簡單的情形,稱之為基本情況或者 停止條件...