程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 數組作為函數參數時,傳遞數組大小的方法,函數數組

C++ 數組作為函數參數時,傳遞數組大小的方法,函數數組

編輯:C++入門知識

C++ 數組作為函數參數時,傳遞數組大小的方法,函數數組


廢話不多說,先上錯誤示范:

void fun(int arr[arr_num]) {

  // ...

}

 

int main() {

  // ...

  int *arr = new int[10];

  fun(arr)

  // ...

  return 0;

}

很多人向函數傳遞數組時,都想要也把數組大小傳遞進去方便操作,雖然上邊的方法看起來比較順眼,但是是錯誤的,arr_num起不到任何作用,也就是說不管你傳進去的數組為多大,都不會報錯。

正確的做法如下:

方法一:

把數組大小當作另外一個參數傳進去

void fun(int *arr, int arr_num) {

  // ...

}

方法二:

void fun(int (&arr)[arr_num]) {

  // ...

}

經檢驗,這種方式也存在報錯的時候:

1、當傳遞的參數不為指針時,此方法正確,即:

int arr[10] = {0};

fun(arr);

2、當傳遞的參數為指針時,此方法報錯,即:

int *arr = new int[10];

fun(arr);

 

綜上所述,還是第一種方法比較穩妥,多一個參數也沒什麼大不了的呵呵

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved