函式和陣列的小知識點筆記

2021-08-02 11:43:29 字數 1623 閱讀 4716

程式示例一:

#include 

using

namespace

std;

int sumfun(int arr,int count);

const

int size = 10;

int main()

; sum=sumfun(array,size);

cout

<<"the total of array is "

int sumfun(int arr,int count)

輸出結果:the total of array is 21

建立以陣列作為引數的函式很簡單,只需將陣列名和填充的元素數目傳遞給函式即可。但是有乙個問題——即確保函式不會修改原始資料,除非函式的目的本來就是修改傳遞給他的資料,否則應該避免發生原始資料被修改的情況。

為了防止函式無意中修改原始資料,可以在函式原型宣告形參時使用關鍵字const

比如,

int sumfun(const int* arr,int count)

該宣告表示,指標arr指向的是常量資料,意味著不能用arr修改資料,但這並不意味著原始資料必須是常量,而只是意味著不能在 sumfun函式中使用arr來修改資料,因此 sumfun函式將陣列視為唯讀資料比如,無意間在 sumfun函式中修改了陣列值,*arr[2]=4;編輯器將禁止這樣做。

對於處理陣列的c++函式,必須將陣列的種類、起始位置和陣列中的元素數目提交給它,傳統的方法是,將指向陣列起始位置的指標作為乙個引數,將陣列長度作為第二個引數,傳遞給函式,這樣便可以找到所需的所有資料。而還有另一種給函式提供所需資訊的方法,即指定區間元素,這可以通過傳遞兩個指標來完成,乙個指標標識陣列的開頭,乙個指標標識陣列的尾部。

程式例項一修改:

函式定義:

int sumfun(const

int* begin,const

int* end)

return total;

}

函式呼叫:

sum

=sumfun(array,array

+size);

輸出結果:the total of array is 21

int data[3][4]=,,};
函式呼叫:int total=sum(data,3);

那麼函式sum的原型是什麼呢,它的定義又是什麼呢?函式為何將行數3作為引數,而不用列數4作為引數呢?

data是乙個陣列名,該陣列有三個元素,第乙個元素本身就是包含4個int元素的陣列,因此,data的型別是指向由4個int組成的陣列的指標。正確的原型如下:

int

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

還有另一種格式,含義同上,但可讀性更強

int

sum(int ar[4],int size);

函式小知識點

方法一 具名函式 function f parameter 函式都會有乙個返回值,不寫,預設返回undefined。因為乙個函式必須要有乙個終止的語句 注意 consol.log 永遠返回undefined,它列印什麼和返回的沒啥關係。var a 1,2 報錯 var a 1,2 a 的值為 2 v...

python 小知識點筆記

len 和 range 經常和for迴圈用在一起處理字串 for i in range len asdf print asdf i 但是for迴圈也只能遍歷索引,或者元素,不能同時遍歷索引和元素。函式enumerate 解決了這個問題 for i ch in enumerate asdfghh pr...

php函式和小知識點

語句 分支語句 a 5 if a 5 else if if.else if.else.if if的巢狀 switch a 迴圈語句 for i 0 i 10 i a 10 while a 0 函式四要素 返回型別,函式名 首字母大寫 引數,函式體 函式定義方式 function show 呼叫函式 ...