C語言之函式

2021-06-28 13:31:32 字數 2831 閱讀 9851

1.前導程式

2.函式概述

1

//列印乙個信頭

2 #include3 #include

4#define name "gigathink,inc."

5#define address "101 megabuck plaza"

6#define place "megapolis,ca 94904"

7#define width 40

8#define space ' '

9void show_n_char(char ch,int num);//

函式定義

10int main(void)11

3031

32void show_n_char(char ch,int

num)

33

(1)void show_n_char (char ch,int num)這行**通知編譯器shpw_n_char()函式使用名為ch和num的兩個引數,並且這兩個引數的型別分別為char和int型別,變數ch和num被稱為形式參量(數),他們是區域性變數時函式所私有的,這意味著在其他函式中,可以使用相同的變數名,每當呼叫函式時,這些變數就會被賦值。

(2)ansi c形式要求在每個變數前宣告型別。如void dibs(int x,y,z)這樣的函式頭是不正確的,可以寫成void dibs(x,y,z) int x,y,z;這樣的形式。

(3)在原型中使用變數名並沒有實際的建立變數,這些變數名只是虛設的名字,不必和函式定義中的使用的變數名相匹配。

(4)show_n_char(space,12)。實際引數是空格和12,這兩個數值被賦給show_n_char()中相應的形式引數:變數ch和num;實際引數可以是常量變數或者是乙個更複雜的表示式,但是無論何種形式的實際參量,計算時都要首先計算其值,然後將該值複製給被呼叫函式中相應的形式引數。不管在被呼叫函式中對複製數值進行什麼操作,呼叫函式中的原數值不會受到任何影響。

(5)黑盒子觀點:黑盒子內的一切操作對呼叫函式來說是不可見的。

(6)函式應該進行型別宣告,其型別應該和返回值型別相同。函式宣告要在函式使用之前,它只是將函式型別告訴編譯器,而函式定義部分則是函式的實際實現**。

(7)return :給函式返回乙個值或者是終止執行函式。

1

//不正確的使用函式2//

程式仍然可以編譯通過

3 #include4

intimax();

5int main(void)6

1112

intimax(n,m)

13int n,m;//

請注意變數宣告的位置

1423

24/*

25#include

26int imax(int,int);//a

27int main(void)

2833

34int imax(int n,int m)//c

3545

*/

3.遞迴

1

//遞迴舉例

每一級的函式呼叫都有自己的變數。

每一次函式呼叫都會有一次返回。當程式執行到某一級遞迴的結尾處時它會轉移到前第一級遞迴繼續執行,程式不能直接返回main()中的初始呼叫部分,而是通過遞迴的每一級逐步返回。

遞迴函式中,位於遞迴呼叫前的語句和各級被呼叫函式具有相同的執行順序。

位於遞迴呼叫後的語句的執行順序和各個被呼叫函式的順序相反。

雖然每一級遞迴都有自己的變數,但是函式**並不會得到複製。

遞迴函式中必須包含可以終止遞迴呼叫的語句。

4.位址運算子:&

5.指標簡介

(1)指標是乙個其數值為位址的變數。指標變數的數值表示的是位址。

(2)ptr=&pooh;//把pooh的位址賦給ptr。ptr=&bah;//令ptr指向bah而不是pooh。

(3)指標是一種新的資料型別,而不是整數型別。

1 nurse=22;2

int*ptr;//

指標宣告

3 ptr=&nurse;//

指向nurse的指標

4 val=*ptr;將ptr指向的值賦給val,即val=22;

(4)通常情況下,可以把關於變數的兩類資訊傳遞給引數,分別是引數的值和引數的位址。

(5)float*pi;//pi是乙個指標,而且*pi是float型別的。

1

//交換函式2/*

3#include

4void interchange(int u,int v);

5int main(void)613

14void interchange(int u,int v)

1521

//資料交換失敗

22*/

23//

交換函式@使用指標

24 #include25

void interchange(int *u,int* v);//126

int main(void)27

3435

void interchange(int *u,int *v)//336

C語言之函式

函式是c語言學習中乙個重要的部分,可以說在開始學習c語言的時候懂得了函式的相關知識對學習c語言很重要特別是有信心上的幫助。下面寫乙個函式的例子,include int foo int num1,int num2 int main 在主函式中有三個臨時變數a,b,c。a和b已知,c被賦予以a和b為引數...

C語言之函式

函式基本格式 函式型別 函式名 定義形參 函式主體 函式的呼叫過程 1,通過函式名找到函式的入口位址 2,給形參分配空間 3,將實參的值傳遞給形參 4,執行函式體 5,返回函式值 void 函式五返回值 6,釋放空間 函式的引數傳遞 簡單變數作為函式引數 1 include 2 3 int main...

c語言之函式

一 定義 c語言是以面向過程的語言,而資料處理的過程我認為主要體現在函式上面。二 使用 1 先從函式的返回值說起 一般用void定義的函式其返回值也為乙個void型別,這裡void不是乙個無型別的意思 更像乙個可以為所有型別的返回 我個人感覺就像向量裡面的零向量,不是沒有指向而 是可以指向任何方向 ...