程式示例一:
#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 呼叫函式 ...