वे कमांड लाइन पैरामीटर का प्रतिनिधित्व करते हैं।
argc निष्पादन योग्य नाम सहित कमांड लाइन पैरामीटर की संख्या है। argv शून्य-समाप्त तारों की एक सरणी है, जहां argv[0]
कमांड लाइन पैरामीटर है, और argv[i]
उसके बाद ith पैरामीटर है, argv[argc-1]
अंतिम वाला और argv[argc]
वास्तव में अच्छी तरह से परिभाषित और एक पूर्ण सूचक है।
इस प्रकार
:
foo bar baz
कमांड लाइन पर
argc
= 3, argv[0]
= "foo" argv[1]
= "बार" argv[2]
= "baz" argv[3]
= शून्य
ध्यान दें कि वहाँ होगा "ध्वज" तर्कों के लिए कोई विशेष लगाव नहीं है।
grep -i foo bar.cpp bar.h
4 तर्क, मैं उनमें से एक जा रहा है और इस पर लागू होता है, भले ही अगले पैरामीटर एक "मूल्य" ध्वज से जुड़ी थी (argc = 5 ही ग्रेप सहित) के लिए होगा।
नोट यदि आप एक वाइल्डकार्ड
grep -i foo *
यूनिक्स में किया था कम से कम, * ग्रेप में कॉल और इस प्रकार प्रत्येक फ़ाइल से मेल खाने वाला एक तर्क हो रहा था जब विस्तार किया जाएगा।
संयोग
char** argv
और char* argv[]
एक ही बात करते हैं।
इसके अलावा मानक कहता है कि आपको इनमें से किसी एक हस्ताक्षर का उपयोग करना होगा (आपको किसी भी कॉन्स्ट में भी नहीं जोड़ना चाहिए) कोई कानून नहीं है, आपको उन दो चर नामों का उपयोग करना होगा, लेकिन अब यह इतना पारंपरिक है कि वे सुंदर हैं बहुत सार्वभौमिक। (यानी यदि आप चाहें तो argCount
और argValues
का उपयोग कर सकते हैं)।
मुझे लगता है कि आपका मतलब है 'argc = 3' not' argc = 2'। – trojanfoe
हाँ, – CashCow
सही आपका स्वागत है। – trojanfoe