सी और सी में कार्यों के लिए एरे पास करना
प्रश्न:
सी और सी क्यों करते हैं सी कंपाइलर फ़ंक्शन हस्ताक्षरों में सरणी लंबाई घोषणाओं की अनुमति देते हैं, जैसे कि int dis(char a[1]), जब वे नहीं होते हैं लागू?
उत्तर:
सी और सी में कार्यों के लिए सरणियों को पारित करने के लिए उपयोग किया जाने वाला वाक्यविन्यास एक ऐतिहासिक विषमता है जो पहले तत्व के लिए एक सूचक को पारित करने की अनुमति देता है सरणी के बजाय सरणी का।
विस्तृत स्पष्टीकरण:
सी और सी में , सरणियों को फ़ंक्शंस के संदर्भ में पारित नहीं किया जाता है। इसके बजाय, सरणी के पहले तत्व के लिए एक पॉइंटर पास किया जाता है। इसका मतलब यह है कि फ़ंक्शन हस्ताक्षर में [] नोटेशन को वास्तव में कंपाइलर द्वारा अनदेखा किया जाता है।
निहितार्थ:
यह व्यवहार भ्रम पैदा कर सकता है क्योंकि ऐसा प्रतीत होता है सरणी को संदर्भ द्वारा पारित किया जा रहा है, लेकिन वास्तव में, केवल एक सूचक को पारित किया जा रहा है। इसके अतिरिक्त, फ़ंक्शन हस्ताक्षर से सरणी की लंबाई निर्धारित करना संभव नहीं है, जिससे चर-लंबाई वाले सरणी के साथ काम करना मुश्किल हो सकता है।
ऐतिहासिक परिप्रेक्ष्य:
इस सिंटैक्स को अनुमति देने का निर्णय 1970 के दशक में फ़ंक्शंस में सरणियों को पारित करने का एक सुविधाजनक तरीका प्रदान करने के तरीके के रूप में किया गया था। हालाँकि, इसके बाद से भ्रम और संभावित सुरक्षा कमजोरियाँ पैदा हो गई हैं। आधुनिक प्रोग्रामिंग में, इस सिंटैक्स का उपयोग करने से बचने और इसके बजाय पॉइंटर्स का उपयोग करके संदर्भ द्वारा एरे पास करने की अनुशंसा की जाती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3