亚洲中文日韩国产一区|亚洲国产精品原创巨作AV无遮挡|色依依国内精品中文字幕|日韩精品免费在线视频

<button id="lyzxa"><option id="lyzxa"><em id="lyzxa"></em></option></button>
    C語言

    淺談C語言函數(shù)

    時間:2024-11-07 04:42:41 C語言 我要投稿

    淺談C語言函數(shù)

      導(dǎo)語:C語言程序設(shè)計是結(jié)構(gòu)化程序設(shè)計,函數(shù)是C語言的基本模塊,函數(shù)調(diào)用是C語言運行的重要機制,在C語言中除了提供大量的庫函數(shù)外,要實現(xiàn)具體的功能必須自己定義函數(shù),下面就由小編為大家淺談一下C語言函數(shù),歡迎大家閱讀!

      1 函數(shù)的定義

      所謂函數(shù)定義,即定義函數(shù)功能,如求和,求最值,排序功能,用C語言提供的選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)寫出具體的代碼實現(xiàn)。如果函數(shù)只是完成某項特定的處理任務(wù)可以定義無返回值的函數(shù),如果函數(shù)最后要返回結(jié)果,可以定義的返回值的函數(shù),如下兩段代碼左邊有返回值,右邊沒有返回值。

      int sum1(int m)//函數(shù)頭部

      { int i,sum=0;

      for(i=1;i<=m;i++)

      sum=sum+i;

      return sum; }

      void sum2(int m)//函數(shù)頭部

      { int i,sum=0;

      for(i=1;i<=m;i++)

      sum=sum+i;

      }

      s=sum;

      }

      2 函數(shù)的調(diào)用

      函數(shù)調(diào)用的一般形式為:

      函數(shù)名(實參列表);

      實參可以是常數(shù)、變量、表達式等,多個實參用逗號,分隔。

      在C語言中,函數(shù)調(diào)用的方式有多種,例如:

      01.// 函數(shù)作為表達式中的一項出現(xiàn)在表達式中

      02.z = max(x, y);

      03.m = n + max(x, y);

      04.// 函數(shù)作為一個單獨的語句

      05.printf("%d", a);

      06.scanf("%d", &b);

      07.// 函數(shù)作為調(diào)用另一個函數(shù)時的實參

      08.printf( "%d", max(x, y) );

      09.total( max(x, y), min(m, n) );

      在函數(shù)調(diào)用中還應(yīng)該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數(shù)是自左向右使用呢,還是自右向左使用。對此,各系統(tǒng)的規(guī)定不一定相同。

      3 實際參數(shù)和形式參數(shù)

      在函數(shù)定義時出現(xiàn)函數(shù)名后邊括號里的變量就是形參,形參必須是變量,因為在函數(shù)調(diào)用時形參是被賦值對象,形參只在定義它的函數(shù)內(nèi)部被訪問,是局部變量。

      在函數(shù)調(diào)用時出現(xiàn)在函數(shù)名后邊括號里的常量、變量、表達式、函數(shù)等是實參,實參當(dāng)前值是確定的,因為它在賦號右側(cè)。

      實參出現(xiàn)在主調(diào)函數(shù)中,形參出現(xiàn)在被調(diào)函數(shù)中。

      4 傳值調(diào)用和傳址調(diào)用

      4.1兩個數(shù)對調(diào)的函數(shù)實現(xiàn)

      #include

      int a=3,b=4;

      void swap1(int a,int b){//值傳遞,也稱為單向傳遞

      int t;

      t=a;a=b;b=t;

      }

      void swap2(int *a,int *b){//地址傳遞,也稱為“雙向傳遞”,實質(zhì)還是單向傳遞

      int t;

      t=*a;*a=*b;*b=t;

      }

      main(){

      swap1(a,b);

      printf("a=%d,b=%d ",a,b);

      swap2(&a,&b);

      printf("a=%d,b=%d ",a,b);

      }

      第一個輸出結(jié)果為3,4,第二個輸出結(jié)果為4,3,在這里傳值調(diào)用和傳址調(diào)用正確,多數(shù)教材和資料中談到傳址調(diào)用時介紹是雙向傳遞,應(yīng)該是不正確的,以下面例子為例:

      4.2有下列程序

      # include

      void fun1(int x,int y)

      { int z;

      z=x; x=y; y=z;

      }

      void fun2(int *x,int *y)

      { int z;

      z=*x; *x=*y; *y=z;

      (*x)++; (*y)++;

      }

      void fun3(int *x,int *y)

      { int z;

      z=*x; *x=*y; *y=z;

      (*x)++; (*y)++;

      }

      void main()

      { int a=5,b=9;

      fun1(a,b);

      printf("a=%d,b=%d ",a,b);

      fun2(&a,&b);

      printf("a=%d,b=%d ",a,b);

      fun3(&a,&b);   printf("a=%d,b=%d ",a,b);

      }

      在這個程序中有三次函數(shù)調(diào)用,第一次調(diào)用結(jié)果還第三次調(diào)用都沒有改變主調(diào)函數(shù)中變量的值第二次改變了,第一次是傳值調(diào)用,第二、三次是傳址調(diào)用,第二次改變的實質(zhì)不是因為是傳址調(diào)用,而是因為使用了間接訪問。

      5 C語言程序設(shè)計函數(shù)使用方法

      5.1函數(shù)是C模塊語言的模塊

      C語言的基本框架是函數(shù),函數(shù)是C語言的基本模塊,在理解中列舉生活中的例子,例如一個部門一開始很小,只有一個人,相當(dāng)只有一個主函數(shù),慢慢的部門壯大起來,需要的人數(shù)增多,這時候部門就可以再進一個人,那必然有一個領(lǐng)導(dǎo)另一個,領(lǐng)導(dǎo)者就是先來的人,也就是主函數(shù),被領(lǐng)導(dǎo)者是后來的人,即被調(diào)用函數(shù),主函數(shù)安排任務(wù)給被調(diào)函數(shù),要把任務(wù)內(nèi)容告訴被調(diào)用函數(shù),這變是參數(shù)傳遞。

      5.2函數(shù)代碼定義過程

      定義時先定義被調(diào)用函數(shù),然后再定義主函數(shù),這樣在主函數(shù)中就不用做函數(shù)聲明了。

      定義被調(diào)用函數(shù)時,先把函數(shù)名字及圓括號和大括號寫,里面的代碼先不寫。然后寫主函數(shù)定義,主函數(shù)在這里沒有返回值也無參,主函數(shù)的頭部定義沒有問題,然后先寫主函數(shù)體代碼,通常主函數(shù)分三部分, 輸入、調(diào)用和輸出,這三部分相對比較難的是調(diào)用,調(diào)用時要分析有沒有返回值,有沒有參數(shù),如果有參數(shù),有幾個并且參數(shù)的類型要確定,調(diào)用時的參數(shù)是實際參數(shù),根據(jù)實參和形參的一一對應(yīng)關(guān)系,實參確定好了,形參的類型和個數(shù)自然也就確定了,這樣被調(diào)用函數(shù)的頭部就定義好了。

      主函數(shù)定義后,被調(diào)用函數(shù)的頭部也定義好了,這時候開始寫被調(diào)用函數(shù)的函數(shù)體,也是編寫程序最難的一部分,涉及具體的算法。

      把主函數(shù)和被調(diào)用函數(shù)定義好后,在具體開發(fā)環(huán)境下編譯、鏈接、執(zhí)行,找出程序有沒有語法錯誤和邏輯錯誤,最后程序得出正確的結(jié)果。

      6 結(jié)語

      C語言程序設(shè)計函數(shù)部分是學(xué)習(xí)難點,它把以前學(xué)的一個函數(shù)能實現(xiàn)的功能分在兩個或多個函數(shù)中實現(xiàn),并且多個函數(shù)這間有接口,接口就是函數(shù)調(diào)用時的參數(shù)傳遞,參數(shù)傳遞時又涉及到變量的作用域和生存期,函數(shù)部分把C語言的各個知識點都聯(lián)接起來了,是C語言的集成和綜合,所以學(xué)好函數(shù)是學(xué)好C語言的關(guān)鍵。


    【淺談C語言函數(shù)】相關(guān)文章:

    淺談如何運用C語言malloc和free函數(shù)08-09

    什么是C語言函數(shù)09-26

    C語言函數(shù)的定義07-13

    C語言函數(shù)的遞歸調(diào)用08-26

    關(guān)于C語言對函數(shù)06-14

    C語言常用的轉(zhuǎn)出函數(shù)08-18

    C語言函數(shù)遞歸教程09-25

    C語言常用的輸入函數(shù)10-22

    C語言中函數(shù)的區(qū)分08-30

    C語言函數(shù)的運用及調(diào)用10-09