2016-06-11 13 views
5

C++ के लिए एक वैकल्पिक पैरामीटर बनाओ, तो आप एक पैरामीटर ऐसा वैकल्पिक बना सकते हैं:एक सरणी एक C++ समारोह

void myFunction(int myVar = 0); 

तुम कैसे एक सरणी के साथ कि क्या करते हैं?

void myFunction(int myArray[] = /*What do I put here?*/); 
+0

आप 'int myArrayDefault [] = {1,2,3} जैसे कुछ कर सकते हैं; शून्य myFunction (int * myArray = myArrayDefault); ' –

+0

ध्यान दें कि परिभाषा 'शून्य myFunction (int * myArray)' से अलग नहीं है। आप एक सरणी पारित नहीं कर रहे हैं। – PaulMcKenzie

+0

सी ++ में, एक सरणी वास्तव में पैरामीटर नहीं हो सकती है। आप तत्व के लिए सूचक, सरणी के संदर्भ, या सरणी के लिए सूचक हो सकता है। लेकिन एक सरणी नहीं है। – juanchopanza

उत्तर

3

डिफ़ॉल्ट तर्क में स्थिर संबंध होना चाहिए (उदा। वैश्विक होना)।

#include <iostream> 

int array[] = {100, 1, 2, 3}; 

void myFunction(int myArray[] = array) 
{ 
    std::cout << "First value of array is: " << myArray[0] << std::endl; 
    // Note that you cannot determine the length of myArray! 
} 

int main() 
{ 
    myFunction(); 
    return 0; 
} 
9

आप एक वैश्विक स्थिरांक सरणी के लिए एक nullptr या एक सूचक का उपयोग डिफ़ॉल्ट मान को निरूपित करने के कर सकते हैं::

void myFunction(int myArray[] = nullptr) { 
          // ^^^^^^^ 
} 

इसका कारण यह है int myArray[] एक int* सूचक जब करने के लिए समायोजित प्रकार है यहाँ एक उदाहरण है फ़ंक्शन पैरामीटर के रूप में उपयोग किया जाता है।

संबंधित मुद्दे