C 基礎知識 函式

2021-08-18 01:22:29 字數 2103 閱讀 3786

寫在前面:

在剛上大學的時候,學習各種各樣的計算機基礎知識,對我而言,剛開的時候我是不理解的,知識太抽象,只是機械的記住了概念和用法,往往忽略了一些細節。

當自己實踐增多的時候,各種知識漸漸的清晰起來,所有東西都是有來龍去脈的,原來不理解的東西都豁然開朗起來。這個時候再取回顧原來學習的知識技能,又有一種溫故而知新的感覺。因為我打算開始慢慢複習之前學習的基礎知識,這也算是我開始夯實基礎的乙個開篇吧!

int test(int x,float y)

用& 符號來標記,給儲存器別名

int x;

int& ref=x;

ref = 3;

//此時x為3

引用和指標的有些類似,只不過引用可以直接賦值,而指標要轉化一下,如

int* p;

p = new

int;

*p=3;

//ref可以直接賦值

int x;

int& ref=x;

ref = 3;

swap(int& x,int& y)

當呼叫時,會將x和y的互換,如

int x=5;

int y=7;

swap(x,y);

//此時x=7,y=5

c++預設的方式就傳值呼叫,傳入的引數會被拷貝乙個副本出來,對這個副本進行操作而傳入的變數不會發生改變,如

swap(int x,int y)

int x=5;

int y=7;

swap(x,y);

//此時x還是等於5,y還是等於7

int& test(int& result)

int a=5;

++test(a);

cout

注意:不要返回區域性變數,因為函式裡區域性變數再函式執行完畢後,會被釋放,返回區域性變數會發生錯誤!

int test(float j,int i=0)

test(5.5,1);

test(5.5);

有預設引數的變數要放在後面,沒有預設值的變數放在前面!

bool ismax(int x,int y)

bool ismax(float x,float y)

bool ismax(double x,double y)

過載的概念是對於同名函式來說的,允許函式名稱相同,這樣的好處其實是方便呼叫,不用根據資料型別來呼叫函式了,同樣的函式名可以處理不同的資料,因為c語言裡沒有過載的概念,所以可能會出現:

ismax_int;

ismax_float;

ismax_double;

......

這樣多難受,而c++只要ismax就能搞定所有,最終我們會根據函式的引數型別、個數、順序來區別這些同名的函式,這其實就是函式的簽名就是下個問題了。

函式簽名保證了函式的唯一性,對於過載來說因為函式名一樣,所以靠以下的第二點來區分

*函式名

*函式引數的個數、型別、順序

f();

g();

//名稱不同

f();

f(int a);

//引數個數不同

f(int a);

f(float a);

//型別不同

f(int a,float b);

f(float a,int b);

//順序不同

inline

void test(int a,int b)

在執行test(5,4)的時候,不會去做函式呼叫操作,因為編譯器相當於將test實現的**替換了呼叫那一行的**。好處是減小了呼叫開銷,但是程式的大小會膨脹,因為內聯函式會替換所有呼叫此函式的地方,有時候編譯器會因為一些原因不能去擴充套件這樣的請求,所以應該還是要看編譯器的情況吧。

C 基礎知識 轉換函式

1.舉例 分數物件視為doubule型別class fraction operator double const private int m num int m den 2.轉換函式的特點 2.1 沒有函式返回型別 2.2 沒有引數 2.3 必須是成員函式 3.注意事項 3.1 如果定義了全域性過載...

C 基礎知識(函式過載)

1 函式過載overload 概述 c 中允許出現同名函式,這種現象就叫函式過載。函式過載的目的是為了方便使用函式名。2 函式過載 2.1基本語法 實現函式過載的條件 1 同乙個作用域 2 引數個數不同 3 引數型別不同 4 引數順序不同。注 返回值不作為過載的依據。函式過載和預設引數設定一起使用時...

函式基礎知識

1.函式呼叫 注意函式名稱,引數個數,引數資料型別 2.函式定義 def 函式名 引數 函式體return 返回值 函式中也可以直接使用pass,意為什麼也不做,目的是讓程式能夠執行不報錯 python有一點值得注意,返回值可以為多個,例如 d def get weight and height d...