函式學習總結

2021-08-17 11:52:59 字數 3223 閱讀 3260

一.知識點

1.語法形式      

資料型別 函式名(形式參數列)

函式體      

注:(1)資料型別指返回值型別(void無返回值) 

(2)   形參表可空 ,但()不可省

2.函式呼叫三種方式

(1)傳數值

實參賦值給形參,在被呼叫函式中形參值可以改變,但不影響主調函式的實參值,主函式的值仍為呼叫前的值,例如用swap函式交換ab兩數的值,但主函式實參值不改變,沒有達到交換的目的。

(2)傳引用

return每次只能返回乙個值,當返回兩個及以上變數值時可以用傳引用,即給變數起別名,引用傳遞方式是在函式形參前面加上「&」

例:void swap(int &a,int &b)

int main()

輸出結果為2 1

(3)傳位址

定義形式:型別識別符號*變數名此處型別識別符號為目標變數的型別    例:int *i_point 

重要**:     int*p; int &x=y;  p=&x;   y=*p;

使用示例:

注:<1>指標變數只能指向

同一型別

的變數,即整型指標變數只能指向整型資料的位址,而不能放其它型別資料的位址

例:int i;    int *i_point =&i;

<2>

說明變數時,加*指定義指標變數,加&指引用變數 即起別名

正常語句中,&代表求位址,指標變數前加*代表取指標變數代表的目標變數

示例:

<3>絕對不能對未賦值的指標變數作「取內容」運算。

3.指標與陣列

陣列名是陣列的起始位址,陣列的指標是陣列的起始位址,陣列元素的指標是陣列元素的位址。

a是常量,

指向陣列的開始元素,a+i指向陣列的第i個元素的指標

指標變數pa是變數,可以變,但陣列a不可變,只能當做常量指標使用,例:p=p+2合法 但a=a+2不合法              

p+i或a+i

均表示a[i]的位址&a[i]

<2>

p+1指向陣列的下乙個元素,而不是下乙個位元組.

int  a[10];

int *p=a;

*p=1;

a[0]=1;

*(p+1)=2;

a[1]=2;

<3> 形參與實參都用陣列名,

用陣列名作形參,因為接收的是位址,所以可以不指定具體的元素個數。

int main( )

f(int arr[ ], int n)

<4>

實參用陣列名,形參用指標變數

int main( )

f(int *x, int n )

<5>

形參實參都用指標變數

int main( )

f(int *x, int n )

4.遞迴呼叫

直接或間接呼叫自身

的函式稱為

遞迴函式  遞迴的實質就是自己呼叫自己,用呼叫自己的方法去處理問題,使問題變得簡潔

遞迴的關鍵:找出大問題與小問題的關係,呼叫次數有限,找出停止條件

遞迴的基本思想:將問題分解,

把乙個不能或不好解決的大問題轉化為乙個或幾個小問

題,再把這些小問題進一步分解為更小問題

最小問題可以直接解決。

例:歐幾里得演算法

n!

n!=n*(n-1)!    (n>0)

n!=1    (n=0)

int f(int n)

1.計算c(m,n)的值

c(m,n)=m!/((m-n)!n!)

int main()

for (int i=0;i<10;i++)

cout}}

4.最小公倍數

int main()

int p(int x)

6.放蘋果

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。

輸入  第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。

輸出  對輸入的每組資料m和n,用一行輸出相應的k

int f(int m, int n)

int main()

{ int t, m, n;

cin >>t;

for (int i=1;i<=t;i++)

{cin>>m>>n;

cout 《學c++已經大半年了,剛開始接觸的時候就感覺挺難的,開始學的c部分就學了點皮毛,現在開始學函式部分了,寫法部分有一點不大適應,尤其是遞迴方面的題目。遞迴的關鍵是有解題的思路,最難的部分也是思路,只有想出思路才有用遞迴解題的可能,找到大問題與小問題的內在關係,其次 找到遞迴結束的條件,否則函式就會陷入死迴圈。指標變數對我來說也是一大難點,使用方式千變萬化,使用起來比較方便,但是學習起來比較難理解,指標與陣列結合起來函式簡潔明瞭,平時可以嘗試使用練習,增加熟練度,加強對指標的理解,為今後寫出更加簡單的**做一下準備。

做有智慧型的懶人 這句話並不是那麼容易就能做到的,懶人人人想做,人人也都能做,但是重點就在於智慧型二字上,如何才稱為有智慧型,又如何成為有智慧型的人,我想這肯定與平時勤奮的積累離不開的,知其然,知其所以然,只有平時多積累,多做準備,各種知識了然於胸,才能在今後做到胸有成竹,高效率,高品質,低消耗,高水平的完成工作,表面上的懶並不是真的懶,而在於平時的勤奮給自己了懶的實力,有了懶的資本。

函式學習總結

1.為什麼定義函式,使用函式 在程式的設計過程中,會在許多地方出現想同的 為了減少 數量,讓程式變得更加美觀,此時可以將這段程式單獨作為乙個整體,並用識別符號起乙個名字,當時使用時,直接呼叫函式名即可。這段程式叫作子程式,就是我們所說的函式。2.函式的定義 1 定義的語法形式 資料型別 函式名 形式...

函式學習總結

從開學到現在學習函式知識三個周,我從中學會了很多,但 也有很多疑惑和不懂的地方,下面是我的一些學習總結 第一點函式需要先定義,定義之後才能使用,函式的一般形式 如下 第二點函式呼叫的含義 為函式分配儲存空間,執行函式。函式呼叫的過程 第三點引用的概念 型別名 引用名 某變數名。某個變數的引 用和這個...

函式學習總結

函式 一般的,我們有 設 a b 是非空的數集,如果按照某種確定的對應關係 f 使對於集合 a 種的任意乙個數 x 在集合 b 中都有唯一確定的數 f x 和它對應,那麼就稱 f a to b 為從集合 a 到集合 b 的乙個函式,記作 y f x x in a.其中,x 叫自變數,x 的取值範圍 ...