回答
您聲明函數,通過引用,採用10個整數數組是這樣的:
void f(int (&arr)[10]);
你這樣稱呼它
int arr[10];
f(arr);
您可以模板化的功能
template<class T, int N>
void f(T (&arr)[N]);
我傳遞的字符串是從文件讀入的,所以它沒有靜態的元素大小,無論如何我可以解決這個問題?謝謝 – nullVoid 2012-01-10 23:08:35
@ user1141945:不,沒有。 C++中的數組類型必須在編譯時指定其大小。動態「數組」實際上是指針,而不是數組。 – 2012-01-10 23:14:55
不是數組通過引用傳遞嗎? 'void f(int(&arr)[10]);'和'void f(int arr [10]);'? – 2012-01-11 01:31:43
如果你正在使用可變大小的數組,你應該使用類似這樣的東西:
void someFunc(char* szString, int cbChars)
{
for (int nChar == 0; nChar < cbChars; nChar++)
{ // Do something with the char array
szString[nChar] = 'A'; // Convert string to "AAAAAA..."
{
}
void callerFunc()
{
char szString[255];
// read file...
// put file contents in szString
// and call the above function passing the string 'by reference'
someFunc(szString, 255);
}
也就是說,只傳遞一個指向數組的指針(它必須是相同的類型)和它的大小(這樣你就知道在哪裏停止並避免異常)。
您可以爲任何數據類型的任何陣列做同樣的,有指針上一個很好的教程:http://www.cplusplus.com/doc/tutorial/pointers/
如果你使用的是最新的編譯器像最近的海灣合作委員會和Visual Studio(提供C++ 11個容器),你可以用一個std :: array來代替原始數組,並且在閱讀時更加清楚。
這裏是阿爾欽Tsirunyan答案與標準::數組:
void f(std::array<int,10> & arr);
你這樣稱呼它
std::array<int,10> arr;
f(arr);
您可以模板化的功能
template<class T, int N>
void f(std::array<T,N> & arr);
- 1. 如何通過引用將結構數組傳遞給函數?
- 2. 通過引用將結構數組傳遞給函數
- 3. C++:通過引用將結構數組傳遞給函數
- 4. 通過引用將字符串數組傳遞給C函數
- 5. 如何通過ctypes將void *數組傳遞給C函數?
- 6. 如何將引用傳遞給函數
- 7. PHP:通過引用傳遞給函數的數組?
- 8. 如何指示參數通過引用傳遞給函數
- 9. 如何通過引用傳遞數組?
- 10. 通過引用將對象參數傳遞給仿函數
- 11. 如何通過複製和引用將函數傳遞給函數?
- 12. 如何通過引用傳遞一個數組中的函數?
- 13. 如何將通用數組傳遞給構造函數
- 14. 將參數傳遞給函數引用?
- 15. 通過引用將結構數組傳遞給函數的問題
- 16. 通過ajax將數組傳遞給php
- 17. 是否可以通過引用將變量傳遞給函數?
- 18. 通過引用將矢量對象傳遞給函數?
- 19. 通過引用傳遞數組參數
- 20. 如何通過POST將參數傳遞給Azure函數?
- 21. 如何通過map.event.addListener將參數傳遞給外部函數
- 22. celerybeat如何通過調度器將參數傳遞給函數?
- 23. 通過支柱使用ReactJS將函數傳遞給子組件
- 24. 如果我們將一個數組傳遞給C中的函數,它是否總是通過引用傳遞?
- 25. 如何通過一個函數傳遞參數給函數? (ES6)
- 26. 將對象(通過引用傳遞)傳遞給函數不會保持更改
- 27. 將對象引用傳遞給函數
- 28. 將變量傳遞給引用函數?
- 29. 將'this'引用傳遞給Backbone函數
- 30. 將數組傳遞給函數參數
可能你可能展示的例如,即時通訊相當新的C + +它有助於看到實踐中的代碼,如果它不是太麻煩?謝謝 – nullVoid 2012-01-10 23:14:38
簡單:'void f(std :: array&par)'爲一個數組(或者對於動態數組使用'std :: vector '),'void f(std :: string&par)'爲一個字符串。但爲什麼不顯示一些關於你想要做什麼的代碼? –
Grizzly
2012-01-10 23:15:20