第7章 函式 C 的程式設計模組

2021-05-06 17:30:11 字數 1665 閱讀 7975

1.使用陣列區間的函式

傳統c/c++方法是將指向陣列起始處的指標作為乙個引數,將陣列長度作為第二個引數。還有另一種方法是指定元素區間,這可以通過傳遞兩個指標來完成:乙個指標標識陣列的開頭,另乙個指標標識陣列的尾部。

假設有double elboud[20];則指標elboud和elboud+20定義了區間。表示式elboud+19指向最後乙個元素(elboud[19]),因此,elboud+20指向陣列結尾後面的乙個位置。

指標cookies+arsize指向最後乙個元素後面的乙個位置(陣列有arsize個元素,因此cookies[arsize-1]是最後乙個元素,其位址為cookies+arsize-1)。因此,區間[cookies,cookies+arsize]指定的是整個陣列。

2.指標和const

關於const int * a 和 int * const a 的區別:

如果願意,還可以宣告指向const物件的const指標:

stick只能指向trouble,且stick不能用來修改trouble的值。

為防止函式無意中修改陣列的內容,可在宣告形參時使用關鍵字const:void show_array(const double ar, int n);

該宣告表明,指標ar指向的是常量資料,不能用ar來修改該資料。這並不意味著原始陣列必須是常量,而只是意味著不能在show_array()函式中使用ar來修改這些資料。這裡的陣列元素師基本型別。但如果它們是指標或指向指標的指標,則不能用const。只要有一層間接關係,就可以使用這種技術。

3.函式和二維陣列

int sum(int (*ar2) [4], int size);

其中的括號是不可少的,因為宣告 int *ar2[4]將宣告乙個由4個指向int的指標組成的陣列,而不是由乙個指向由4個int組成的陣列的指標。在宣告ar2時,沒有用const,因為這種技術只能用於指向基本型別的指標,而ar2是指向指標的指標。

4.函式和c-風格字串

假設要將字串作為引數傳遞給函式,則表示字串的方式有3種:

1)char陣列;

2)用引號括起的字串常量(也稱字串字面值);

3)被設定為字串的位址的char指標。

處理字串中字元的標準方式:

5.函式和結構

按值傳遞結構有乙個缺點。如果結構非常大,則複製結構將增加記憶體要求,降低執行的速度。所以更傾向於傳遞結構的位址,然後使用指標來訪問結構的內容。

第7章 用函式實現模組化程式設計

第7章 用函式實現模組化程式設計 例題7.1 想輸出以下結果,用函式呼叫實現。例題7.2 輸入兩個整數,要求輸出其中較大值。例題7.3 將7.2稍作改動,將max函式中定義得變數z改為float型。例題7.4 輸入兩個實數,用乙個函式求出他們之和。例題7.1 想輸出以下結果,用函式呼叫實現 incl...

第7章 用函式實現模組化程式設計

例7.1 想輸出以下的結果,用函式呼叫實現。例7.2 輸入兩個整數,要求輸出其中值較大者。要求用函式來找到大數。例7.3 將例7.2稍作改動,將在max函式中定義的變數z改為float型。函式返回值的型別與指定的函式型別不同,分析其處理方法。例7.4 輸入兩個實數,用乙個函式求出他們之和。例7.1 ...

CodeMonkey少兒程式設計第7章 函式

本章我們學習乙個新的概念 函式。你可以簡單的將函式看作為乙個黑匣子,給它輸入引數後,它將會按照一定的規則,執行相應的指令或輸出資料。讓我們用生活中的乙個小物件來理解什麼是函式。假設你家有一台榨汁機,通過它,就能榨出鮮美可口的果汁。而具體榨出來的是什麼果汁呢?那就要看你放進榨汁機的是什麼水果啦。而對於...