Why can C functions not return arrays? -


सी में, एक struct (रिकॉर्ड डेटा संरचना) एक फ़ंक्शन का रिटर्न प्रकार हो सकता है, लेकिन एक सरणी नहीं हो सकती सी भाषा के कारण सरणियों को किस अपवाद के रूप में डिजाइन विशेषताएँ?

सी भाषा में एक नग्न सरणी प्रकार प्राथमिक रूप से ऐतिहासिक कारणों के लिए प्रतिलिपि नहीं है इस कारण से arrays के साथ arrays को प्रारंभ करना संभव नहीं है, सरणियों के लिए सरणियों को असाइन करना, पैरामीटर के रूप में मूल्य से एरे सेट या फ़ंक्शन से वापसी एरेज़ करना। (प्रारंभिक संदर्भ में chars [6] = "नमस्ते"; ।) का एक उल्लेखनीय अपवाद है

यह भी अभी भी संभव है कि यदि सभी सरणी स्ट्रेट में लिपटे हों प्रकार, जो दर्शाता है कि सीमा पूरी तरह से प्रकृति में घोषणात्मक है। इसके लिए कोई सम्मोहक तकनीकी कारण नहीं है।

सी भाषा ने अपने ऐतिहासिक पूर्ववर्तियों - बी और बीसीपीएल भाषाओं से सरणी कार्यान्वयन के लिए अपना दृष्टिकोण विरासत में मिला है। बी / बीसीपीएल सरणियों में खुले तौर पर पॉइंटर्स के रूप में कार्यान्वित किया गया था, जिसका अर्थ है कि एक सरणी को एक दूसरे को निर्दिष्ट करने का संकेत मिलता है, सी भाषा एक अलग दृष्टिकोण का पालन किया सी arrays में संकेत नहीं हैं, लेकिन सी arrays के इंटरफ़ेस विनिर्देश बी / बीसीपीएल के साथ सतही रूप से संगत रखा गया है। सी में स्थितियां अभी भी अधिकतर संदर्भों में पॉइंटर्स होने का "ढोंग" है। यह एक कारण है कि वे तुरंत नकल नहीं कर रहे हैं।

Comments