陣列 函式 (1)

2021-08-15 01:10:38 字數 1868 閱讀 1864

1.無參函式的定義形式

型別標識和函式名稱為函式頭。型別識別符號指明了本函式的型別,函式的型別實際上是函式返回之型別,該型別識別符號與前面介紹的各種說明符相同。函式名是由使用者定義的識別符號,函式名後有乙個空括號,其中無引數,但括號不可少。

{}中的內容稱為函式體。在很多情況下都不要求無參函式有返回值。此時函式型別符可以寫void

2.有參函式定義的一般形式

有參函式比無參函式多了乙個內容,即形式引數列表。在形參列表中給出的引數稱為形式引數,他們可以是各種型別的變數,各引數之間用逗號間隔。

在進行函式呼叫時,主調函式將賦予這些形式引數實際的值。形參既然是變數,必須在形參表中給出形參的型別說明。

3.宣告與定義不同

函式的宣告就是聲稱乙個函式的名字,只是說明函式的名字,不涉及函式的實現,即沒有函式體,所以函式的宣告只包括前3個部分。

函式的定義就是確定乙個函式的含義,即讓函式具有某項功能,但是這裡可不是只有函式體,總要指明這個函式體是那個函式,所以函式的定義包含了乙個函式的所有部分。

一般情況下,通過函式名就可以體現函的功能,這樣的標頭檔案中,通過函式的宣告,就可以了解程式的大體結構,以及函式的功能,並且通過函式的宣告,還可以使那些「只想使用某個函式」,而不關心函式的具體實現的使用者,就可憑藉宣告中的「函式引數列表」就可以只知道該函式時需要提供的值,這樣就可以使用這個函式。

4.機構體陣列作為實參

符合結構體變數作為實參規則,採取單向「值傳遞」方式將結構體變數所佔的記憶體單元的內容全部順序複製給形參。

注意 當實參的成員中包含陣列時,形參相應的成員接受到的是乙個位址。

5.機構體陣列名作為實參

同整形陣列陣列名作為實參一樣,傳遞給形參的事記憶體中已指定單元的位址,呼叫過程中形引數組與是引數組占用同一段記憶體單元,因此對形引數組的操作也就是對實參陣列的操作也就是對實參陣列的操作,對陣列的操作表現為雙向性。

綜上所述,在有參函式的呼叫時,實參變數與形參變數之間的資料都是單向「值傳遞」方式。至於呼叫過程中是否會改變主調函式中變數的值,則只需根據具體演算法看被調函式是否會找到主調函式中變數所在記憶體單元並對其原本進行操作。

6.陣列作為引數傳遞給函式時,可以通過sizeof得到陣列的大小麼

答案是不可以,當把陣列作為函式的引數時,你無法在程式執行時通過陣列引數本身告訴函式該陣列的大小,因為函式的陣列引數相當於指向該陣列第乙個元素的指標。

這意味著把陣列傳遞給函式的效率非常高,也意味著程式設計師必須通過某種機制告訴函式陣列引數的大小。

7.陣列的下標總是從0開始嗎?

是的,對陣列a[max],來說,他的第乙個和最後乙個元素分別是a[0]和a[max-1],在其他一些語言中,情況可能有所不同,例如,在basic語言中陣列的元素就是從 1 - max,在pascal語言中則是兩種方式都可行。

8.可以把另乙個位址賦給乙個陣列名嗎

答案是不可以,儘管在乙個很常見的特例中好像可以。

陣列名不能被放在賦值運算子的左邊。乙個陣列是乙個物件,而他的陣列名就是指向這個物件的第乙個元素的指標。

假如乙個陣列是用extern 或 static說明的,則他的陣列名是在連線時可知的乙個常量,你不能修改這樣乙個陣列名,就像你不能修改7的值一樣。

9.array_name 與 &array_name 有什麼不同 

前者是指向陣列中的第乙個元素的指標,後者是指向整個陣列的指標。

陣列是一種型別,他有三個要素,即基本型別、大小、陣列的值。你可以用乙個指標指向整個陣列的值。

10.為什麼用const說明的常量不能用來定義乙個陣列的初始大小

並不是所有的常量都可以用來定義乙個陣列的初始大小,在c程式中,只有c語言的常量表示式才能用來定義乙個陣列的初始大小。然而,在c++中,情況有所不同。

乙個常量表示式的值在程式的值在程式執行期間是不變的,並且是編譯程式能計算出來的乙個值。在定義陣列的大小時,你必須使用常量表示式。

PHP陣列函式 1

1.array 函式用於建立陣列 在 php 中,有三種型別的陣列 自 php 5.4 起,可以使用短陣列語法,用 代替 array 例如,用 cars volvo bmw 代替 cars array volvo bmw 2.array change key case 函式將陣列的所有的鍵都轉換為大...

PHP之陣列函式 1

快速建立陣列 range 函式 explode 函式 array combine 函式 array fill 函式 array pad 函式 陣列統計函式 count 函式 別名 sizeof 函式 max 函式 min 函式 array sum 函式 array product 函式 array ...

實驗七 函式及陣列(1)

一 實驗內容 由於函式部分大部分同學反映難,因此本次實驗的內容要求同學們按照課堂上的示例,在主函式中定義乙個選單功能,顯示實驗六中的每一道題目,根據輸入編號的不同,選擇對應的題號執行,如圖 1所示 圖1 函式實驗選單 用陣列來處理求 fibonacci 數列問題 求前 40項 二 實驗要求 1 實驗...