argv
केवल "सरणी के पहले सूचकांक के लिए एक सूचक" ( char* argv
) होने के बजाय "सरणी के पहले सूचकांक को सूचक" के रूप में क्यों घोषित किया जाता है ?
यहाँ "पॉइंटर टू पॉइंटर" की धारणा की आवश्यकता क्यों है?
char* argv[]
जगह को गलत जगह लगा देता है। कहो char *argv[]
, और अब यह स्पष्ट है कि इसका अर्थ है "अभिव्यक्ति *argv[n]
प्रकार का एक चर है char
"। एक पॉइंटर क्या है और एक पॉइंटर को पॉइंटर क्या है, और इसी तरह से काम करने की कोशिश में मत फंसो। घोषणापत्र आपको बता रहा है कि इस चीज पर आप कौन से ऑपरेशन कर सकते हैं।
char * argv[]
से समान सी ++ निर्माण की तुलना करें std::string argv[]
, और पार्स करना आसान हो सकता है। ... बस इसे इस तरह से लिखना शुरू न करें !
char &func(int);
लिए &func(5)
टाइप नहीं कर सकते हैं char
।
char* argv[]
याchar**
। यह एक चरित्र के लिए एक सूचक का सूचक है; विशेष रूप से बाहरी पॉइंटर एक सरणी में पहले पॉइंटर को इंगित करता है, और इनर पॉइंटर न्यूल-टर्म स्ट्रिंग्स के पहले पात्रों को इंगित करता है। यहां कोई सूचकांक शामिल नहीं है।