• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            冰狼

            在努力、磨練、打擊下不斷地向著理想的財務自由方向前進

            C++復習:C基礎(數組+函數)

              數組在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱為數組。

                在C語言中, 數組屬于構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字符數組、指針數組、結構數組等各種類別。

            數組說明的一般形式為:
                    類型說明符 數組名 [常量表達式],……;
            其中,類型說明符是任一種基本數據類型或構造數據類型。 數組名是用戶定義的數組標識符。 方括號中的常量表達式表示數據元素的個數,也稱為數組的長度。

            對于數組類型說明應注意:
            數組的類型實際上是指數組元素的取值類型。對于同一個數組,其所有元素的數據類型都是相同的。數組名的書寫規則應符合標識符的書寫規定。數組名不能與其它變量名相同。方括號中常量表達式表示數組元素的個數。不能在方括號中用變量來表示元素的個數, 但是可以是符號常數或常量表達式。允許在同一個類型說明中,說明多個數組和多個變量。

            C語言對數組的初始賦值還有以下幾點規定:
            可以只給部分元素賦初值。當{ }中值的個數少于元素個數時,只給前面部分元素賦值。
            例如static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而后5個元素自動賦0值。
            只能給元素逐個賦值,不能給數組整體賦值。
            例如給十個元素全部賦1值,只能寫為: static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;
            如不給可初始化的數組賦初值,則全部元素均為0值。
            如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。
            例如static int a[5]={1,2,3,4,5};可寫為: static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。 這時可用循環語句配合scanf函數逐個對數組元素賦值。

            字符數組:用來存放字符量的數組稱為字符數組。字符數組類型說明的形式與前面介紹的數值數組相同。
            C語言允許用字符串的方式對數組作初始化賦值。用字符串方式賦值比用字符逐個賦值要多占一個字節, 用于存放字符串結束標志'\0'。


            函數
            C源程序是由函數組成的。 雖然在前面各章的程序中都只有一個主函數main(), 但實用程序往往由多個函數組成。函數是C源程序的基本模塊, 通過對函數模塊的調用實現特定的功能。
            從函數定義的角度看,函數可分為庫函數和用戶定義函數兩種。
            庫函數由C系統提供,用戶無須定義, 也不必在程序中作類型說明,只需在程序前包含有該函數原型的頭文件即可在程序中直接調用。
            用戶定義函數由用戶按需要寫的函數。對于用戶自定義函數, 不僅要在程序中定義函數本身, 而且在主調函數模塊中還必須對該被調函數進行類型說明,然后才能使用。

            C語言的函數兼有其它語言中的函數和過程兩種功能,從這個角度看,又可把函數分為有返回值函數和無返回值函數兩種。有返回值函數,此類函數被調用執行完后將向調用者返回一個執行結果, 稱為函數返回值。如數學函數即屬于此類函數。 由用戶定義的這種要返回函數值的函數,必須在函數定義和函數說明中明確返回值的類型。無返回值函數,此類函數用于完成某項特定的處理任務, 執行完成后不向調用者返回函數值。這類函數類似于其它語言的過程。 由于函數無須返回值,用戶在定義此類函數時可指定它的返回為“空類型”, 空類型的說明符為“void”。

            從主調函數和被調函數之間數據傳送的角度看又可分為無參函數和有參函數兩種。
            無參函數,函數定義、函數說明及函數調用中均不帶參數。 主調函數和被調函數之間不進行參數傳送。 此類函數通常用來完成一組指定的功能,可以返回或不返回函數值。有參函數,也稱為帶參函數。在函數定義及函數說明時都有參數, 稱為形式參數(簡稱為形參)。在函數調用時也必須給出參數, 稱為實際參數(簡稱為實參)。 進行函數調用時,主調函數將把實參的值傳送給形參,供被調函數使用。


            C語言提供了極為豐富的庫函數, 這些庫函數又可從功能角度作以下分類。
            (1)字符類型分類函數
              用于對字符按ASCII碼分類:字母,數字,控制字符,分隔符,大小寫字母等。
            (2)轉換函數
              用于字符或字符串的轉換;在字符量和各類數字量 (整型, 實型等)之間進行轉換;在大、小寫之間進行轉換。
            (3)目錄路徑函數
              用于文件目錄和路徑操作。
            (4)診斷函數
              用于內部錯誤檢測。
            (5)圖形函數
              用于屏幕管理和各種圖形功能。
            (6)輸入輸出函數
              用于完成輸入輸出功能。
            (7)接口函數
              用于與DOS,BIOS和硬件的接口。
            (8)字符串函數
              用于字符串操作和處理。
            (9)內存管理函數
              用于內存管理。
            (10)數學函數
              用于數學函數計算。
            (11)日期和時間函數
              用于日期,時間轉換操作。
            (12)進程控制函數
              用于進程管理和控制。
            (13)其它函數
              用于其它各種功能。

            C語言中,所有的函數定義,包括主函數main在內,都是平行的。也就是說,在一個函數的函數體內, 不能再定義另一個函數, 即不能嵌套定義。但是函數之間允許相互調用,也允許嵌套調用。習慣上把調用者稱為主調函數。 函數還可以自己調用自己,稱為遞歸調用。main 函數是主函數,它可以調用其它函數,而不允許被其它函數調用。 因此,C程序的執行總是從main函數開始, 完成對其它函數的調用后再返回到main函數,最后由main函數結束整個程序。一個C源程序必須有,也只能有一個主函數main。

            函數的參數分為形參和實參兩種。形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。實參出現在主調函數中,進入被調函數后,實參變量也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。

            函數的形參和實參具有以下特點:
            1.形參變量只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數后則不能再使用該形參變量。
            2.實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
            3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生“類型不匹配”的錯誤。
            4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。實參的值不隨形參的變化而變化。

            用數組名作函數參數與用數組元素作實參有幾點不同:
            1. 用數組元素作實參時,只要數組類型和函數的形參變量的類型一致,那么作為下標變量的數組元素的類型也和函數形參變量的類型是一致的。因此, 并不要求函數的形參也是下標變量。 換句話說,對數組元素的處理是按普通變量對待的。用數組名作函數參數時, 則要求形參和相對應的實參都必須是類型相同的數組,都必須有明確的數組說明。當形參和實參二者不一致時,即會發生錯誤。

            2. 在普通變量或下標變量作函數參數時,形參變量和實參變量是由編譯系統分配的兩個不同的內存單元。在函數調用時發生的值傳送是把實參變量的值賦予形參變量。在用數組名作函數參數時,不是進行值的傳送,即不是把實參數組的每一個元素的值都賦予形參數組的各個元素。因為實際上形參數組并不存在,編譯系統不為形參數組分配內存。那么,數據的傳送是如何實現的呢? 在第四章中我們曾介紹過,數組名就是數組的首地址。因此在數組名作函數參數時所進行的傳送只是地址的傳送, 也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之后,也就等于有了實在的數組。實際上是形參數組和實參數組為同一數組,共同擁有一段內存空間。

            C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。 但是C語言允許在一個函數的定義中出現對另一個函數的調用。 這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。 這與其它語言的子程序嵌套的情形是類似的。

            一個函數在它的函數體內調用它自身稱為遞歸調用。 這種函數稱為遞歸函數。C語言允許函數的遞歸調用。在遞歸調用中, 主調函數又是被調函數。執行遞歸函數將反復調用其自身。 每調用一次就進入新的一層。

            posted on 2007-06-18 10:14 在法律保護下合法地搶銀行 閱讀(960) 評論(0)  編輯 收藏 引用 所屬分類: C++

            公告

            轉載、引用、收藏,請標明來自:

            http://m.shnenglu.com/paladino

            導航

            <2007年6月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            統計

            留言簿(2)

            隨筆分類(10)

            文章分類(5)

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            伊人久久亚洲综合影院| 草草久久久无码国产专区| 午夜福利91久久福利| 中文精品99久久国产 | 国产成人精品久久亚洲高清不卡 | 免费观看久久精彩视频| 三级韩国一区久久二区综合| 亚洲精品乱码久久久久久蜜桃图片| 久久久久久久久久久久久久| 久久精品国产99国产电影网| 亚洲欧美日韩精品久久亚洲区| 无码AV波多野结衣久久| 国产亚洲精久久久久久无码AV| 欧美伊人久久大香线蕉综合| 免费观看久久精彩视频| 四虎国产精品成人免费久久| 国产婷婷成人久久Av免费高清| 久久久久婷婷| 国产精品久久久久无码av| 亚洲国产成人精品久久久国产成人一区二区三区综 | 一本伊大人香蕉久久网手机| 99蜜桃臀久久久欧美精品网站| 国产免费福利体检区久久| 久久精品午夜一区二区福利| 亚洲日本va午夜中文字幕久久| 99久久精品国产一区二区三区| 性欧美丰满熟妇XXXX性久久久 | 伊人色综合久久| 久久精品国产亚洲AV麻豆网站| 久久人妻少妇嫩草AV无码蜜桃| 精品久久一区二区三区| 午夜精品久久久久久毛片| 日本精品一区二区久久久| 久久综合丁香激情久久| 伊人久久大香线蕉av不变影院| 伊人色综合久久天天网| 蜜臀久久99精品久久久久久| 久久se这里只有精品| 岛国搬运www久久| 久久精品国产72国产精福利| 国产69精品久久久久99|