मुझे 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
एक सबर्रे के तत्व को संदर्भित करना एक बड़ा सरणी में उस सरणी से पहले तत्व को संदर्भित करने के लिए एक पूरी तरह से वैध तरीका है। अन्य यह है कि यदि सूचकांक अमान्य है, तो कार्यक्रम अमान्य है, लेकिन अधिकांश कार्यान्वयन में आपको चुप व्यवहार मिलेगा, न कि एक आउट-ऑफ-रेंज त्रुटि।