亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計算機等級 > 二級考試 > C語言程序設(shè)計 > C語言輔導(dǎo) > 文章內(nèi)容
        

      全國計算機等級考試二級C語言入門教程(74)

      中華IT學(xué)院   【 】  [ 2016年2月16日 ]

      數(shù)組名作為函數(shù)參數(shù)

      用數(shù)組名作函數(shù)參數(shù)與用數(shù)組元素作實參有幾點不同:

      1. 用數(shù)組元素作實參時,只要數(shù)組類型和函數(shù)的形參變量的類型一致,那么作為下標(biāo)變量的數(shù)組元素的類型也和函數(shù)
      形參變量的類型是一致的。因此, 并不要求函數(shù)的形參也是下標(biāo)變量。 換句話說,對數(shù)組元素的處理是按普通變量
      對待的。用數(shù)組名作函數(shù)參數(shù)時, 則要求形參和相對應(yīng)的實參都必須是類型相同的數(shù)組,都必須有明確的數(shù)組說明。
      當(dāng)形參和實參二者不一致時,即會發(fā)生錯誤。
      2. 在普通變量或下標(biāo)變量作函數(shù)參數(shù)時,形參變量和實參變量是由編譯系統(tǒng)分配的兩個不同的內(nèi)存單元。在函數(shù)調(diào)用
      時發(fā)生的值傳送是把實參變量的值賦予形參變量。在用數(shù)組名作函數(shù)參數(shù)時,不是進行值的傳送,即不是把實參數(shù)組
      的每一個元素的值都賦予形參數(shù)組的各個元素。因為實際上形參數(shù)組并不存在,編譯系統(tǒng)不為形參數(shù)組分配內(nèi)存。那
      么,數(shù)據(jù)的傳送是如何實現(xiàn)的呢? 在第四章中我們曾介紹過,數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時
      所進行的傳送只是地址的傳送, 也就是說把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就
      等于有了實在的數(shù)組。實際上是形參數(shù)組和實參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間。圖 5.1說明了這種情形。
      圖中設(shè)a為實參數(shù)組,類型為整型。a占有以2000 為首地址的一塊內(nèi)存區(qū)。b為形參數(shù)組名。當(dāng)發(fā)生函數(shù)調(diào)用時,進
      行地址傳送, 把實參數(shù)組 a的首地址傳送給形參數(shù)組名b,于是b也取得該地址2000。 于是a,b兩數(shù)組共同占有
      以2000 為首地址的一段連續(xù)內(nèi)存單元。從圖中還可以看出 a和b下標(biāo)相同的元素實際上也占相同的兩個內(nèi)
      存單元(整型數(shù)組每個元素占二字節(jié))。例如 a[0]和 b[0]都占用 2000和 2001單元,當(dāng)然a[0]等于 b[0]。類推則有 a[i]
      等于 b[i]。
      [例5.5]數(shù)組 a中存放了一個學(xué)生5門課程的成績,求平均成績。float aver(float a[5])
      {
      int i;
      float av,s=a[0];
      for(i=1;i<5;i++)
      s=s+a[i];
      av=s/5;
      return av;
      }
      void main()
      {
      float sco[5],av;
      int i;
      printf("\ninput 5 scores:\n");
      for(i=0;i<5;i++)
      scanf("%f",&sco[i]);
      av=aver(sco);
      printf("average score is %5.2f",av);
      }



      float aver(float a[5])

      { ……

      }

      void main()

      {

      ……

      for(i=0;i<5;i++)

      scanf("%f",&sco[i]);

      av=aver(sco);

      ……

      }
      本程序首先定義了一個實型函數(shù)aver,有一個形參為實型數(shù)組a,長度為 5。在函數(shù) aver中,把各元素值相加求

      出平均值,返回給主函數(shù)。主函數(shù)main 中首先完成數(shù)組 sco的輸入,然后以 sco作為實參調(diào)用 aver函數(shù),函數(shù)返回

      值送av,最后輸出 av值。 從運行情況可以看出,程序?qū)崿F(xiàn)了所要求的功能

      首頁 1 2 3 4 尾頁
      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照