मैं एक प्रोग्राम बनाने की कोशिश कर रहा था जो कमांड लाइन से इनपुट प्राप्त करता है। मेरा प्रोग्राम केवल 2 वर्णों (जो कार्ड का प्रतिनिधित्व करता है) के तार प्राप्त करने के लिए माना जाता है और पहले वर्ण को एक चर में संग्रहीत करता है जो कार्ड के मूल्य का प्रतिनिधित्व करेगा और दूसरे वर्ण को दूसरे चर में संग्रहीत करेगा जो कार्ड के सूट का प्रतिनिधित्व करेगा। शुक्रिया:)

c
0
Ana Ferreira 1 अप्रैल 2020, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

आइए देखें कि ऑपरेटर (*argv[2])[2] में कैसे बंधते हैं।

argv से शुरू करके, * और [2] के बीच बाद वाले की प्राथमिकता अधिक होती है। तो * को argv[2] पर लागू किया जाता है, तीसरे तर्क के लिए एक सूचक (दूसरा यदि आप argv[0] को तर्क के रूप में नहीं गिनते हैं)। argv[2] char का सूचक है, इसलिए * लगाने से पॉइंट-टू कैरेक्टर (तीसरे तर्क का पहला कैरेक्टर) मिलता है।

उसके बाद आप [2] को char पर लागू कर रहे हैं, जो एक बाधा उल्लंघन है। [] के ऑपरेंड में से एक में पॉइंटर टाइप होना चाहिए और दूसरे में इंटीग्रल टाइप होना चाहिए।

अब, मुझे नहीं पता कि "सूचक के पहले वर्ण" से आपका क्या मतलब है। लेकिन अगर आप स्ट्रिंग के पहले अक्षर को argv[2] द्वारा इंगित करना चाहते हैं, तो आप इसे *argv[2] या argv[2][0] के रूप में प्राप्त कर सकते हैं।

4
R.. GitHub STOP HELPING ICE 1 अप्रैल 2020, 14:54