मुझे C प्रोग्रामिंग में एक अजीब अनुभव हुआ। इस कोड पर विचार करें:
int main(){
int array1[6] = {0, 1, 2, 3, 4, 5};
int array2[6] = {6, 7, 8, 9, 10, 11};
printf("%d\n", array1[-1]);
return 0;
}
जब मैं इसे संकलित और चलाता हूं, तो मुझे कोई त्रुटि या चेतावनी नहीं मिलती है। जैसा कि मेरे लेक्चरर ने कहा, एरे इंडेक्स -1दूसरे वेरिएबल को एक्सेस करता है। मैं अभी भी उलझन में हूँ, पृथ्वी पर एक प्रोग्रामिंग भाषा में यह क्षमता क्यों है? मेरा मतलब है, नकारात्मक सरणी सूचकांकों की अनुमति क्यों दें?
-1एक सबर्रे के तत्व को संदर्भित करना एक बड़ा सरणी में उस सरणी से पहले तत्व को संदर्भित करने के लिए एक पूरी तरह से वैध तरीका है। अन्य यह है कि यदि सूचकांक अमान्य है, तो कार्यक्रम अमान्य है, लेकिन अधिकांश कार्यान्वयन में आपको चुप व्यवहार मिलेगा, न कि एक आउट-ऑफ-रेंज त्रुटि।