在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

函數與遞歸-1

汽車電子技術 ? 來源:微亮筆記 ? 作者: PASSION ? 2023-02-21 15:50 ? 次閱讀

本期介紹C語言函數與遞歸部分的筆記。在我看來,如果說各種循環與分支是一個系統的骨架的話,那么形式繁多的函數就是C語言的血肉了,正是各式各樣的函數決定了C語言的各種功能。那么話不多說,既然函數如此重要,那就快跟我一起了解函數吧圖片圖片(ps:此部分內容較多,將會分成多期來更新吖)

本章主要掌握函數的基本使用和遞歸

1.函數是什么

2.庫函數的定義及使用查找方法

3.自定義函數的定義及使用方法

4.函數參數的類型

  • 函數是什么?-----“子程序

    在計算機科學中,子程序是一個大型程序中的部分代碼,由一個或多個語句塊組成。它負責完成某項特定任務,而且相較于其他代碼來說具備相對的獨立性。

    一般會有輸入參數并有返回值,提供對過程的封裝和對細節的隱藏。這些代碼通常被集成為軟件庫。C語言函數分為兩類:庫函數和自定義函數。

  • 庫函數

    為什么會存在庫函數?

    我們在編寫代碼時,總會頻繁地使用一些基本的功能,比如打?。╬rintf),字符拷貝(strcpy),n的k次方數學運算(pow)..........當我們需要使用這些功能時,如果臨時編寫就會很麻煩,為了支持可移植性和提高程序的效率,C語言的基礎庫中提供了一系列庫函數,方便大家進行程序開發。

    庫函數的種類和數量有很多,在使用時我們不需要也不可能將所有的庫函數使用方法及細節全部背下來,只需要像查字典一樣用一個查一個就行了圖片圖片

    那么C語言的字典是什么呢?下面我會提供幾個權威的網站供大家參考,鏈接如下:

    http://cplusplus.com

    http://cppreference.com

    以上網站都非常實用奧~~~

    當然我們在使用庫函數之前一定要記住先聲明用**#include**所引用的頭文件,比如在使用printf函數時需引用,使用pow函數時需引用頭文件等等,這些在上述網站也是可以查到的圖片圖片

  • 自定義函數

    庫函數雖功能強大,但還是遠遠無法滿足我們編程需求

    所以更重要的是 自定義函數

    自定義函數和庫函數一樣,有函數名,返回值類型和函數參數。但不一樣的是這些都需要我們自己來設計,這就給了程序員很大的發揮空間,話不多說,我們接下來動手寫一個簡單的自定義函數:

  • void swap(int x,int y)//返回值類型,函數名,函數參數
    {
      int tmp=0;
      tmp=x;
      x=y;
      y=tmp;
    }//函數體
    

    這樣,我們就完成了一個函數,它的功能是交換兩個參數的值,但這個函數在具體使用時仍有問題,不過它可以幫助我們了解自定義函數的幾大要素:返回值類型 ,函數名,函數參數和函數主體。

    需要注意的是,由于是“自定義”函數,我們在起名時可以像給游戲角色起名一樣隨意起,但是并不推薦大家這樣做,舉個栗子圖片

int add(int x,int y)
{
  int z=0;
  z=x-y;
  return z;
  }

這樣我們就定義了一個看似非常"合理"的函數,說它合理是因為此函數完全符合自定義函數定義規則,但是我們把一個執行減法功能的函數命名為“add”,這顯然會引起歧義,為了使我們的代碼具有可移植性并且提高程序的運行效率,我推薦大家根據函數功能來命名圖片圖片

函數的參數

實際參數(實參)

真實傳遞給函數的參數叫實參。實參可以是:常量,變量,表達式,函數等等。無論實參是何種類型的常量,在進行函數調用時,它們都必須有確定的值,以便把這些確定的值傳遞給形參

** 形式參數(形參)**

形式參數是指函數在定義時括號中的變量,因為參數形式只有函數被調用的過程才實例化,所以叫形式參數。形式參數在函數調用完成后就自動銷毀了。因此形式參數只在函數中有效。

只看定義當然很難理解,我們上函數圖片圖片

int get_max(int x,int y)//括號內是形式參數
{
  if (x>y)
    return 0;
  else
    return y;
 }//以上是對一個自定義函數的定義過程
 int main()
 {
   int a=10;
   int b=20;
   int max=get_max(a,b);//實際參數,必須有實際的值,可以放變量
   printf("max=%d",max)
   max=get_max(100,300+1);//也可以放實際的值
   max=get_max(100,get_max(3,7));//還可以放另一個函數
   printf("max=%d",max);
 }

大家如果還是覺得難以理解,那我舉個具體的例子:

求一個長方形的面積,我們首先要套用公式“s=a*b”

比如該長方形長是5,寬是4,我們就要將5和4帶入到上面的公式里得出面積為5*4=20

在上述過程中,a,b就是形式參數,而具體的值像4,5就是實際參數

在使用時實際參數要把值傳遞給形式參數,在函數體內進行相應運算后得出結果再傳遞出來。這就是函數調用的其中一種方式:傳值調用。而這里就涉及到了函數的調用,篇幅有限,我們下期再繼續介紹相關知識,這里就不贅述了

ok,到此我們本期的內容就結束了,祝大家寒假愉快!圖片圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7626

    瀏覽量

    139545
  • 函數
    +關注

    關注

    3

    文章

    4363

    瀏覽量

    63732
  • 循環
    +關注

    關注

    0

    文章

    92

    瀏覽量

    16191
收藏 人收藏

    評論

    相關推薦

    數據結構與算法:1-4-1-函數遞歸(1)#結構數據

    數據結構與算法
    學習硬聲知識
    發布于 :2022年12月18日 10:14:48

    《C Primer Plus》讀書筆記——遞歸

    Fibonacci(n-1) + Fibonacci(n-2); elsereturn 1;}雙重遞歸。 致命弱點:每級調用變量數以指數遞增!Something interesting …main( )也可以被自身
    發表于 02-05 20:06

    LabVIEW遞歸

    感受到了遞歸的復雜和重要性。在愛因斯坦這一問題中,程序設計的時候反復遞歸,一個遞歸函數再調用另外一個遞歸
    發表于 02-19 11:52

    Labview遞歸函數的使用案例

    Labview遞歸函數的使用案例,簡單的1+2+3...+100求和,簡單易懂,充分理解遞歸函數的思想
    發表于 10-09 09:37

    C++教程之函數遞歸調用

    C++教程之函數遞歸調用 在執行函數 f 的過程中,又要調用 f 函數本身,稱為函數遞歸調
    發表于 05-15 18:00 ?35次下載

    遞歸指的是在函數的定義中使用函數自身的方法

    C語言支持遞歸,即一個函數可以調用其自身。但在使用遞歸時,程序員需要注意定義一個從函數退出的條件,否則會進入死循環。遞歸
    的頭像 發表于 11-12 15:06 ?7335次閱讀

    C++的實驗教程之函數遞歸算法資料免費下載

    函數遞歸算法 1.范例:求組合數, 一、實驗目的1. 學會解決簡單的遞歸算法。2. 掌握函數
    發表于 01-29 10:51 ?2次下載
    C++的實驗教程之<b class='flag-5'>函數</b>的<b class='flag-5'>遞歸</b>算法資料免費下載

    所有遞歸代碼都可以轉為非遞歸代碼

    之所以所有的遞歸都能轉為迭代算法是因為遞歸借助函數調用,函數調用本身就是基于調用棧這種結構實現的,只不過這一切都是自動完成的,我們當然也可以用代碼手動模擬出來。
    的頭像 發表于 04-19 15:02 ?2289次閱讀

    C語言-內聯函數、遞歸函數、指針函數

    這篇文章介紹C語言的內聯函數、遞歸函數、函數指針、指針函數、局部地址、const關鍵字、extern關鍵字等知識點;這些知識點在實際項目開發
    的頭像 發表于 08-14 10:03 ?1858次閱讀

    遞歸代碼都轉為非遞歸可以嗎

    之所以所有的遞歸都能轉為迭代算法是因為遞歸借助函數調用,函數調用本身就是基于調用棧這種結構實現的,只不過這一切都是自動完成的,我們當然也可以用代碼手動模擬出來。
    的頭像 發表于 02-17 14:35 ?910次閱讀
    <b class='flag-5'>遞歸</b>代碼都轉為非<b class='flag-5'>遞歸</b>可以嗎

    Python支持遞歸函數

    Python支持遞歸函數——即直接或間接地調用自身以進行循環的函數。遞歸是頗為高級的話題,并且它在Python中相對少見。然而,它是一項應該了解的有用的技術,因為它允許程序遍歷擁有任意
    的頭像 發表于 02-21 14:28 ?730次閱讀

    函數遞歸-3

    程序調用自身的編程技巧稱為遞歸(recursion)。遞歸作為一種算法在程序設計語言中廣泛應用。一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個
    的頭像 發表于 02-21 15:57 ?714次閱讀

    什么是Python的遞歸函數

    遞歸函數必須有終止條件。編程中,函數的調用要占用名叫棧(stack)的內存空間。調用函數時,程序會將相關的數據存儲到計算機的棧里。
    的頭像 發表于 02-23 10:25 ?2028次閱讀

    C語言,你真的懂遞歸了嗎?

    要說到遞歸如果不說棧的話,我覺得有點不合適,遞歸特點就是不斷的調用同一個函數,如果這個函數沒有一個遞歸界限,那么就是死循環了,所以討論
    的頭像 發表于 06-06 15:24 ?1195次閱讀
    C語言,你真的懂<b class='flag-5'>遞歸</b>了嗎?

    關于C語言中的遞歸

    遞歸指的是在函數的定義中使用函數自身的方法。
    發表于 02-26 10:34 ?589次閱讀
    關于C語言中的<b class='flag-5'>遞歸</b>
    主站蜘蛛池模板: 亚洲色图在线播放 | 免费在线播放毛片 | 激情六月天 | 婷婷色激情 | 女的扒开尿口让男人桶 | 日本三级s级在线播放 | 中文字幕第7页 | 中文字幕第13亚洲另类 | bt天堂资源种子在线 | 欧美一级在线观看视频 | 男女一进一出抽搐免费视频 | 国产情侣真实露脸在线最新 | 四虎影院视频在线观看 | 黄视频免费网站 | 天天干在线观看 | 欧美人与牲动交xxxx | 欧美一级特黄aaaaaaa在线观看 | 另类视频色综合 | 日本黄色大片免费观看 | 两性色午夜视频免费播放 | 日本不卡高清免费 | 国产精品福利视频手机免费观看 | 月夜免费观看完整视频 | 久久极品 | 日韩特级毛片免费观看视频 | 亚洲福利一区二区 | 天天舔天天操天天干 | 日本成片视频 | 91久久麻豆 | 深夜偷偷看视频在线观看 | 四虎欧美在线观看免费 | 成年网站在线看 | 亚洲酒色1314狠狠做 | 欧美成人三级伦在线观看 | 国产拍拍视频 | 欧美一区二区三区免费 | 午夜影院免费 | 天天搞天天搞 | 国产精品久久久久影院免费 | 思思99re66在线精品免费观看 | 天堂最新版中文网 |