陣列作為形參
在函式傳遞值的過程中,一般都是值傳遞但是陣列確實傳遞的指標,這樣主要用於避免過多資料複製佔用過多的記憶體空間。
我們在設定函式的時候可以使用
int puta(const int geta[],int s_a) 來避免原始陣列受到修改,
如此的話修改會報錯
input.cpp: In function ‘int puta(const int*, int)’:
input.cpp:49:11: error: assignment of read-only location ‘*(geta + ((sizetype)(((long unsigned int)i) * 4ul)))’
geta[i] = ipu;
下面是一個相關的例子
這裡使用函式傳入值,同時檢測輸入的值是否合法
8 #include
9 using namespace std;
10
11 int puta(int *geta,int s_a);
12
13 int main(void)
14 {
15 int geta[10];
16 // puta(geta,sizeof(geta)/sizeof(int));
17 if(!(puta(geta,sizeof(geta)/sizeof(int))))
18 {
19 for(int i = 0;i<sizeof(geta) sizeof(int);i++) 20 {
21 cout<<geta[i]<<endl;
22 }
23 }
24 else
25 {
26 cout<<"error input!\n";
27 }
28
29 }
30
31 int puta(int geta[],int s_a)
32 {
33 int i;
34 int ipu;
35 for(i=0;i<s_a;i++)
36 {
37 if(!(cin>>ipu)) //cin>>check ipu data is adjust return true else return flase
38 {
39 cin.clear(); //clear cin flag
40 while(cin.get() !='\n') //clear stdout buffer
41 continue;
42 cout<<"error input!\n";
43 return 1;
44 }
45 else if (ipu<0)
46 {
47 return 1;
48 }
49 geta[i] = ipu;
50 }
51 return 0;
52 }
</s_a;i++)
</geta[i]<<endl;
我們在設定函式的時候可以使用
int puta(const int geta[],int s_a) 來避免原始陣列受到修改,
如此的話修改會報錯
input.cpp: In function ‘int puta(const int*, int)’:
input.cpp:49:11: error: assignment of read-only location ‘*(geta + ((sizetype)(((long unsigned int)i) * 4ul)))’
geta[i] = ipu;
下面是一個相關的例子
這裡使用函式傳入值,同時檢測輸入的值是否合法
8 #include
9 using namespace std;
10
11 int puta(int *geta,int s_a);
12
13 int main(void)
14 {
15 int geta[10];
16 // puta(geta,sizeof(geta)/sizeof(int));
17 if(!(puta(geta,sizeof(geta)/sizeof(int))))
18 {
19 for(int i = 0;i<sizeof(geta) sizeof(int);i++) 20 {
21 cout<<geta[i]<<endl;
22 }
23 }
24 else
25 {
26 cout<<"error input!\n";
27 }
28
29 }
30
31 int puta(int geta[],int s_a)
32 {
33 int i;
34 int ipu;
35 for(i=0;i<s_a;i++)
36 {
37 if(!(cin>>ipu)) //cin>>check ipu data is adjust return true else return flase
38 {
39 cin.clear(); //clear cin flag
40 while(cin.get() !='\n') //clear stdout buffer
41 continue;
42 cout<<"error input!\n";
43 return 1;
44 }
45 else if (ipu<0)
46 {
47 return 1;
48 }
49 geta[i] = ipu;
50 }
51 return 0;
52 }
</s_a;i++)
</geta[i]<<endl;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2106201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java靜態方法和例項方法 java中的陣列作為形參傳入Java陣列
- 陣列作為函式引數陣列函式
- 二維陣列傳參做形參陣列
- 二維陣列作為引數傳遞問題陣列
- CTF逆向:將陣列作為函式程式碼執行陣列函式
- PHP 陣列作為列表使用時應當遵循的規範PHP陣列
- SQLBulkOperations及陣列作引數的SQLSQL陣列
- C語言用二維陣列作為函式入口引數的小結C語言陣列函式
- c++形參實參C++
- C語言結構體作為形參C語言結構體
- 字串陣列轉為樹形結構字串陣列
- 方法的實參和形參
- 方法的形參和實參
- 形函式,等參單元,雅克比矩陣,高斯積分函式矩陣
- JavaScript 函式形參和實參JavaScript函式
- C語言 形參和實參C語言
- 通用mapper用oracle序列作為主鍵APPOracle
- 第3周專案5-陣列作資料成員(1)陣列
- 第3周專案5-陣列作資料成員(2)陣列
- 第3周專案5-陣列作資料成員(3)陣列
- 第3周專案5-陣列作資料成員(4)陣列
- 第3周專案5-陣列作資料成員(5)陣列
- php中函式的實參和形參PHP函式
- C/C++中的實參和形參C++
- day10:函式的實參&形參函式
- js 函式中形參與實參的關係JS函式
- 二維陣列傳參陣列
- 函式形參與實參的體會與對比函式
- python關於函式形參Python函式
- 陣列的操作-變形陣列
- numpy——陣列的形狀陣列
- 工具函式:普通陣列如何轉為樹形結構資料(多層級)陣列?函式陣列
- java 方法呼叫,形參改變,實參是否發生改變Java
- D3圖形庫API參考API
- mybatis select返回值為map時,選取表欄位的兩列作為key,valueMyBatis
- JavaSE 形參和返回值(引用型別)Java型別
- 獲取javascript函式形參的數目JavaScript函式
- Kotlin 知識梳理(10) 高階函式:Lambda 作為形參或返回值Kotlin函式