又黄又www的网站_青青草.com_在线亚洲美日韩_九九九国产视频_√天堂8资源中文在线_一区二区三区免费网站_久久久久国产一区二区三区_人妻激情偷乱视频一区二区三区_一本到在线视频

2011年計算機等級考試二級C語言入門教程:函數的定義和調用

發布時間:2011-08-29 共1頁

導讀:程序員一般把函數當作“黑箱”處理,并不關心它內部的實現細節。當然程序員也可以自己開發函數庫。

  本節介紹C程序的基本單元--函數。函數中包含了程序的可執行代碼。每個C程序的入口和出口都位于函數main()之中。main()函數可以調用其他函數,這些函數執行完畢后程序的控制又返回到main()函數中,main()函數不能被別的函數所調用。通常我們把這些被調用的函數稱為下層(lower-level)函數。函數調用發生時,立即執行被調用的函數,而調用者則進入等待狀態,直到被調用函數執行完畢。函數可以有參數和返回值。
  程序員一般把函數當作“黑箱”處理,并不關心它內部的實現細節。當然程序員也可以自己開發函數庫。
  說明一點,函數這一節很重要,可以說一個程序的優劣集中體現在函數上。如果函數使用的恰當,可以讓程序看起來有條理,容易看懂。如果函數使用的亂七八糟,或者是沒有使用函數,程序就會顯得很亂,不僅讓別人無法查看,就連自己也容易暈頭轉向。可以這樣說,如果超過100行的程序中沒有使用函數,那么這個程序一定很羅嗦(有些絕對,但也是事實)。
  一、函數的定義
  一個函數包括函數頭和語句體兩部分。
  函數頭由下列三不分組成:
  函數返回值類型
  函數名
  參數表
  一個完整的函數應該是這樣的:
  函數返回值類型 函數名(參數表)
  {
  語句體;
  }
  函數返回值類型可以是前面說到的某個數據類型、或者是某個數據類型的指針、指向結構的指針、指向數組的指針。指針概念到以后再介紹。
  函數名在程序中必須是唯一的,它也遵循標識符命名規則。
  參數表可以沒有也可以有多個,在函數調用的時候,實際參數將被拷貝到這些變量中。語句體包括局部變量的聲明和可執行代碼。
  我們在前面其實已經接觸過函數了,如abs(),sqrt(),我們并不知道它的內部是什么,我們只要會使用它即可。
  這一節主要講解無參數無返回值的函數調用。
  二、函數的聲明和調用
  為了調用一個函數,必須事先聲明該函數的返回值類型和參數類型,這和使用變量的道理是一樣的(有一種可以例外,就是函數的定義在調用之前,下面再講述)。
  看一個簡單的例子:
  void a(); /*函數聲明*/
  main()
  {
  a(); /*函數調用*/
  }
  void a() /*函數定義*/
  {
  int num;
  scanf(%d,&num);
  printf(%d\n,num);
  }
  在main()的前面聲明了一個函數,函數類型是void型,函數名為a,無參數。然后在main()函數里面調用這個函數,該函數的作用很簡單,就是輸入一個整數然后再顯示它。在調用函數之前聲明了該函數其實它和下面這個程序的功能是一樣的:
  main()
  {
  int num;
  scanf(%d,&num);
  printf(%d\n,num);
  }
  可以看出,實際上就是把a()函數里面的所有內容直接搬到main()函數里面(注意,這句話不是絕對的。)
  我們前面已經說了,當定義在調用之前時,可以不聲明函數。所以上面的程序和下面這個也是等價的:
  void a()
  {
  int num;
  scanf(%d,&num);
  printf(%d\n,num);
  }
  main()
  {
  a();
  }
  因為定義在調用之前,所以可以不聲明函數,這是因為編譯器在編譯的時候,已經發現a是一個函數名,是無返回值類型無參數的函數了。
  那么很多人也許就會想,那我們何必還要聲明這一步呢?我們只要把所有的函數的定義都放在前面不就可以了嗎?這種想法是不可取的,一個好的程序員總是在程序的開頭聲明所有用到的函數和變量,這是為了以后好檢查。
  前面說了,在調用之前,必須先聲明函數,所以下面的做法也是正確的(但在這里我個人并不提倡)。
  main()
  {
  void a();
  a();
  }
  void a()
  {
  int num;
  scanf(%d,&num);
  printf(%d\n,num);
  }
  一般來說,比較好的程序書寫順序是,先聲明函數,然后寫主函數,然后再寫那些自定義的函數。
  既然main()函數可以調用別的函數,那么我們自己定義的函數能不能再調用其他函數呢?答案是可以的。看下面的例子:
  void a();
  void b();
  main()
  {
  a();
  }
  void a()
  {
  b();
  }
  void b()
  {
  int num;
  scanf(%d,&num);
  printf(%d\n,num);
  }
  main()函數先調用a()函數,而a()函數又調用b()函數。在C語言里,對調用函數的層數沒有嚴格的限制,我們可以往下調用100層、1000層,但是在這里我們并不提倡調用的層數太多(除非是遞歸),因為層數太多,對以后的檢查有一些干擾,函數調過來調過去,容易讓自己都暈頭轉向。
  某些人可能就不明白了,看上面的例子,好象使用函數后,程序變的更長了,更不讓人理解。當然,我舉的這個例子的確沒有必要用函數來實現,但是對于某些實際問題,如果不使用函數,會讓程序變的很亂,這涉及到參數問題,我們下一節再說。

百分百考試網 考試寶典

立即免費試用
亚洲精品天堂| 好吊日免费视频| 全黄性性激高免费视频| 国产一线二线三线在线观看| 欧洲成人午夜精品无码区久久| 星空大象在线观看免费播放| 国产精品99久久久久久成人| 一级一片免费看| 亚洲第一色网| 夜夜操 天天操| aiai在线| 91伊人久久| 精品国产一区探花在线观看| 久久成人一区| 欧美国产丝袜视频| 欧美裸体bbwbbwbbw| 日韩精品免费视频| 国产精品第三页| 亚洲一区二区在线看| 日本在线播放一区二区| 永久免费看片视频教学| 色欲无码人妻久久精品| 国产91xxx| 九色porny自拍视频| 91福利在线观看视频| 日本xxxwww免费视频| 国产精彩自拍| 久草在线资源视频| 99热手机在线| 国产精品成人一区二区三区电影毛片| 日韩 欧美 中文| 麻豆精品国产自产在线| 亚洲成人套图| 青青视频在线观| 91成人在线| 国产综合婷婷| 国产精品亲子伦对白| 欧美激情综合在线| 日韩欧美一区二区久久婷婷| 91精品国产99久久久久久| 五月天亚洲综合| av无码av天天av天天爽| 99草在线视频| 成人免费视频77777| 自拍偷拍欧美视频| 国产成人久久精品麻豆二区| 一区二区视频欧美| 亚洲综合丝袜美腿| 欧美日韩国产影片| 日韩免费在线看| 尤物av无码色av无码| 久久午夜鲁丝片午夜精品| 中日韩黄色大片| 再深点灬舒服灬太大了少妇| 丰满的护士2在线观看高清| 久久久久国产精品| ●精品国产综合乱码久久久久| 国产一区二区三区在线播放免费观看 | 亚洲人成电影网站| 国产精品三区www17con| 无码人妻一区二区三区精品视频| 亚洲一级片免费看| 视频在线91| 国产在视频线精品视频www666| 久久久久9999亚洲精品| 伊人av综合网| 韩国精品美女www爽爽爽视频| 欧美一区二区三区综合| 欧美日韩免费做爰视频| www.天堂乱色| 在线观看视频一区二区三区| 91欧美国产| 亚洲一区精品在线| 2019中文字幕在线观看| 天堂网在线免费观看| 日本成人免费在线观看| 国产成人禁片在线观看| 亚洲成人人体| 国产一区二区三区精品视频| 国产精品免费丝袜| 欧美成人一区二区三区电影| 国产日韩av网站| 国内av在线播放| 色九视频91| 色999韩欧美国产综合俺来也| 国产精品88888| 亚洲人成网站免费播放| 欧美另类videos| 亚洲一区在线观| 看女生喷水的网站在线观看| 国产农村妇女精品一二区| 国产精品女主播av| 1769国内精品视频在线播放| 日本高清一区二区视频| 新久草在线视频| 成人性片免费| 国产亚洲精品bt天堂精选| 欧美极品美女电影一区| 国内自拍第二页| 欧美一级手机免费观看片| 完全免费av在线播放| 综合激情一区| 1024精品合集| 成人福利视频在线观看| 一本在线免费视频| 在线视频网站| www.神马久久| 亚洲va国产va欧美va观看| 俄罗斯精品一区二区| 久久免费视频播放| av天在线观看| 国产成人免费视频一区| 欧美激情亚洲一区| 偷拍女澡堂一区二区三区| 青青草原av| 国产精品v日韩精品v欧美精品网站| 日韩欧美美女一区二区三区| 日韩欧美不卡在线| 日韩中文字幕久久久经典网| 1204国产成人精品视频| 色一情一伦一子一伦一区| 亚洲激情图片| 亚洲伦理在线观看| 激情五月综合婷婷| 日韩欧美在线免费观看| 一区二区在线中文字幕电影视频| 亚洲h视频在线观看| 日韩一区二区三免费高清在线观看| 一区二区在线观看av| 欧美高跟鞋交xxxxhd| 亚洲一二三不卡| 成人免费淫片在线费观看| 欧美日韩国产免费观看| 国产午夜精品一区二区三区 | 国产精品女视频| 国产精品久久久久久久精| 亚洲欧美视频一区二区| 久久综合色天天久久综合图片| 91精品视频免费观看| 亚洲大片免费观看| av资源亚洲| 欧美日韩中文字幕| 青草视频在线观看视频| 91麻豆精品国产91久久| 狠狠入ady亚洲精品| 美女性感视频久久久| 男人av资源站| av资源在线播放| 亚洲不卡av一区二区三区| 女人床在线观看| 免费看的黄网站| 日韩精彩视频在线观看| 国产成人综合精品| 五月婷婷丁香在线| 色999韩欧美国产综合俺来也| 欧美视频精品在线| 亚洲黄色av片| 中文字幕在线观| 91在线一区二区三区| 久久99亚洲精品| 精品视频一区二区在线观看| 深夜成人在线| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 樱花在线免费观看| 26uuu色噜噜精品一区| 少妇精品久久久久久久久久| 久久爱com| 国产精品久久久亚洲一区| 国产成人精品a视频一区www| 在线免费av网| 国产伦一区二区三区| 色婷婷**av毛片一区| 小明看看成人免费视频| 午夜亚洲成人| 亚洲精品视频一区| 熟女少妇精品一区二区| 久热中文字幕在线精品首页| 亚洲精品美女| 尤物九九久久国产精品的特点 | 中文字幕乱码久久午夜不卡 | 懂色av蜜臀av粉嫩av永久| 三妻四妾完整版在线观看电视剧| 精品视频123区在线观看| 日韩少妇一区二区| 国精产品一区一区三区mba下载| 色网综合在线观看| 漂亮人妻被黑人久久精品| 麻豆福利在线观看| 欧美一区二区在线免费观看| av男人的天堂av| 国产精品黄色片| 夜夜嗨av一区二区三区免费区| 国产精品美女毛片真酒店| 久久精品亚洲成在人线av网址| 啊v视频在线一区二区三区| 男人天堂av在线播放| 日韩国产在线| 91在线观看免费高清完整版在线观看| 麻豆国产在线视频| 9色porny自拍视频一区二区|