2012-08-16 19 views
6

एस की एक सरणी बनाता है। यदि हम T को int[5] के साथ प्रतिस्थापित करते हैं, तो हमें new int[5][7] मिलता है जो 5 पूर्णांक के 7 सरणी बनाना चाहिए। हालांकि, यह इसके बजाय 7 पूर्णांक के 5 सरणी बनाता है। क्या इसके लिए कोई अच्छा कारण है? अगर यह दूसरी तरफ था तो क्या यह और अधिक समझ में नहीं आता?बहुआयामी सरणी बनाते समय आयामों का क्रम

+3

सभी सी-जैसी भाषाएं [पंक्ति-प्रमुख क्रम] का उपयोग करती हैं (http://en.wikipedia.org/wiki/Row-major_order)। फोरट्रान कॉलम प्रमुख का उपयोग करता है। इसके बारे में * सबसे महत्वपूर्ण आयाम पहले * के रूप में सोचें। – Mysticial

+0

मुझे लगता है कि सवाल पूरी तरह उपयुक्त है, भ्रम का लगातार स्रोत है। सी ++ – sehe

+1

में 'नंगे' बहुआयामी सरणी को छोड़ने के लिए यह कई कारणों में से एक है जब आप एक लुकअप करते हैं, तो सूचकांक आयाम के समान क्रम में जाते हैं, जो मुझे लगता है कि दूसरी तरफ से अधिक समझ में आता है। –

उत्तर

1

मैं आयाम के रूप में यह के बारे में सोच:

height width depth 
int[5] [7] [8] 

या

rows cols 
int[5] [7] 

इसलिए यह समझ में आता है यह मेरे लिए 7 ints के 5 सरणियों होने के लिए। एक प्राकृतिक आदेश है।

मुझे लगता है कि आपका उदाहरण भी समझ में आता है और बहुत तार्किक है। तो मुझे लगता है कि यह सिर्फ राय का विषय है: पी

-1

int ints [][] = new int [5][7];int [] ints [] = new int [5][7]; के रूप में लिखा जा सकता है शायद यह आपको बताएगा कि यह 7 पूर्णांक के 5 सरणी हैं। ;)

+0

क्या यह भी सच है? साथ ही, मुझे नहीं लगता कि यह – sehe

+0

कैसे मदद करता है यह एक मजेदार जवाब है, मेरे द्वारा +1। – fredoverflow

+0

+1 मजाकिया। मैं वाक्यविन्यास को भी पार्स नहीं कर सकता। –

संबंधित मुद्दे