किसी सरणी के लिए पॉइंटर का उपयोग करते समय, मैंने हमेशा इंडेक्सर का उपयोग करके तत्वों का उपयोग किया है, जैसे myPtr[i] = stuff
; हालांकि, मैं हाल ही में BitConverter
's implementation पर देख रहा था और पाया कि तत्वों को *(myPtr + i) = stuff
करके एक्सेस किया गया था।पीआरटी [i] और * (पीआरटी + i) के बीच क्या अंतर है?
जो मैंने सोचा था कि काफी अजीब था, क्योंकि दोनों विधियों (जो मुझे पता है) वही काम करते हैं, यानी, वे myPtr + i
का पता वापस लेते हैं, सिवाय इसके कि वे (मेरी राय में) इंडेक्सर विधि अधिक पठनीय दिखती है।
तो माइक्रोसॉफ्ट ने पॉइंटर्स को बढ़ने का तरीका क्यों चुना, दोनों तरीकों के बीच क्या अंतर है (क्या प्रदर्शन लाभ हैं)?
वे एक ही आईएल उत्पन्न करते हैं। यह सिर्फ शैली का मामला है। –
'ToBoolean' विधि बहुत अच्छी है। टिप्पणियां कोड से मेल नहीं खाती हैं, और इसमें महान 'x == 0 है? झूठा: सादा 'x! = 0' का उपयोग करने के बजाय सही 'पैटर्न। – CodesInChaos