c 基礎 5 識別符號 關鍵字 函式

2021-08-02 08:20:12 字數 3377 閱讀 5837

識別符號是實體唯一標識,也就是實體名,比如變數名,函式名,類名,結構名等,都是識別符號,識別符號由使用者(程式設計人員)自己定義,遵循一定的規則命名規則,具體如下:

第乙個字元必須是字母或下劃線;

後跟字母、下劃線、或數字;

識別符號對大小寫敏感;

不能與c++保留字(即關鍵字)同名;

以上是c++命名必須遵循的名字規則,只要滿足以上規則都是合法的識別符號,但是合法的識別符號並不一定就是好的識別符號,比如:

int a;

int student_number;

int stu_num;

函式是一組包含多個語句的語句塊,用於完成乙個小的功能模組。不要把這個函式和數學裡的函式混淆起來,雖然他們有共通之處,都是為解決乙個問題二設計的小功能模組,但數學裡的函式主要是解決數學問題的,而c++中的函式更廣義,當然也包括數學問題。

在類中,函式叫成員函式,是類對應的事物的行為的抽象。

每個c++程式的入口函式為main(),也就是說,只有有了main()函式你的程式才能執行。

函式宣告告訴編譯器函式的名字,返回型別和引數列表,函式宣告並不為函式建立實體,也就是沒有函式體。宣告之後的函式已經具有了函式呼叫所需的資訊,但不能進行執行。格式如下:

return_type function_name(parameter_list);
如申明乙個兩整型的加法函式:

int add(int a,int b);
函式定義為函式建立實體,經定義的函式才能執行。格式如下:

return_type function_name(parameter_list)
如兩整型的加法函式定義:

int add(int a,int b)
在 c++ 中,函式由乙個函式頭和乙個函式主體組成。下面列出乙個函式的所有組成部分:

返回型別:乙個函式可以返回乙個值。return_type是函式返回的值的資料型別。有些函式執行所需的操作而不返回值,在這種情況下,return_type 是關鍵字 void。

函式名稱:這是函式的實際名稱。函式名和引數列表一起構成了函式簽名。

引數:引數就像是佔位符。當函式被呼叫時,您向引數傳遞乙個值,這個值被稱為實際引數。引數列表包括函式引數的型別、順序、數量。引數是可選的,也就是說,函式可能不包含引數。

函式主體:函式主體包含一組定義函式執行任務的語句。

函式宣告和定義的區別和變數宣告和定義的區別有點相似,宣告就是只給出乙個名和相關資訊,定義時才為其建立實體,一般函式宣告寫在標頭檔案中,而在cpp檔案中進行實現。

在呼叫某個函式之前必須宣告該函式,一般把函式宣告寫在該檔案的開頭部分,或者包含已宣告該函式的標頭檔案。

當程式呼叫函式時,程式控制權會轉移給被呼叫的函式,並用實參為形參初始化。被呼叫的函式執行已定義的任務,當函式的返回語句被執行時,或到達函式的結束括號時,會把程式控制權交還給主程式,並返回return語句之後的值(如果有的話)。乙個小例子:

#include 

using

namespace

std;

//宣告函式,該函式完成兩個int值的加法

int add(int a,int b);

int main()

//函式定義,具體實現

int add(int a,int b)

需要注意的是:在發生函式呼叫是,程式需要將主調函式的上下文儲存下來(也就是當前指令的暫存器內容,具體介紹是在計算機組成原理或者計算機系統結構課程中,可以自行學習),以便返回主調函式時可以從呼叫處繼續執行,這種儲存上下文需要消耗很大開銷,為了避免這種開銷,c++中使用inline關鍵字來將函式宣告為內聯函式

編譯器在呼叫內聯函式的地方將內聯函式展開,也就是用函式體代替函式名。

如:

//定義內聯函式

inline

int add(int a,int b)

//呼叫內聯函式

int x=1,y=2;

cout

《呼叫的地方被展開為:

cout

<<(x+y)兩個函式若除了引數列表不同外,其他都相同,那麼稱這個函式被過載,過載函式通過引數列表來區分具體呼叫的例項,比如,要進行兩個數的加法,但加數型別不確定,那麼就可以使用過載函式來進行,如下:

#include

using

namespace

std;

//宣告函式,該函式完成兩個int值的加法

int add(int a,int b);

//當然你也可以不宣告,直接定義

double add(double a,double b)

int main()

//函式定義,具體實現

int add(int a,int b)

輸出:

add two integer

result1:5

add two double

retult2:5

函式實參的型別必須與形參型別匹配,實參用於呼叫時為形參進行初始化,是主調函式與被調函式之間傳遞引數的一種方式,函式引數的型別根據需要可以是任意的,包括使用者自定義型別,引數型別可以是乙個變數,或者乙個指標,或者乙個引用。按照引數型別的不同,可以將函式呼叫分為傳值呼叫、指標呼叫和引用呼叫。

傳值呼叫:該方法把引數的實際值複製給函式的形式引數。在這種情況下,修改函式內的形式引數對實際引數沒有影響。

指標呼叫:該方法把引數的位址複製給形式引數。在函式內,該位址用於訪問呼叫中要用到的實際引數。這意味著,修改形式引數會影響實際引數。

引用呼叫:該方法把引數的引用複製給形式引數。在函式內,該引用用於訪問呼叫中要用到的實際引數。這意味著,修改形式引數會影響實際引數。

具體使用哪種方法,還要看具體應用,如果你需要在函式中改變主調函式中的值,可以選擇使用指標呼叫或者引用呼叫,否則使用傳值呼叫。

可以為函式引數指定乙個預設值,如果函式呼叫時為傳入值,將使用預設值,如下:

#include 

using

namespace

std;

//宣告函式,第二個引數預設為10

int add(int a,int b=10)

int main()

由於函式呼叫引數列表是從左到右匹配的,故函式預設值必須從右到左設定,否則無法進行匹配。

C 識別符號關鍵字

識別符號是用來識別類 變數 函式或任何其它使用者定義的專案。在 c 中,類的命名必須遵循如下基本規則 關鍵字是 c 編譯器預定義的保留字。這些關鍵字不能用作識別符號,但是,如果您想使用這些關鍵字作為識別符號,可以在關鍵字前面加上 字元作為字首。在 c 中,有些識別符號在 的上下文中有特殊的意義,如 ...

c 小灶 5 識別符號和關鍵字

我們之前說,命名空間的名字是自己取的,類名也是自己取的,方法名也是自己取的,以後還有各種常量 變數 物件 這些名字是自己取的。這些名字,就是識別符號。識別符號規則 識別符號可以包含大小寫字母 數字 下劃線。嚴格區分大小寫。不能以數字開頭。不能包含空格。不可以使用關鍵字做識別符號,但可以在關鍵字前加 ...

識別符號和關鍵字

識別符號組成 1.識別符號不可以是關鍵字,2.識別符號由字母,數字,下劃線組成 3.第乙個字元只能為數字和字母 4.識別符號區分大小寫 關鍵字 如 auto 宣告自動變數 short 宣告短整型變數或函式 int 宣告整型變數或函式 long 宣告長整型變數或函式 float 宣告浮點型變數或函式 ...