C# में पॉइंटर्स के उपयोग के लिए असुरक्षित संशोधक की आवश्यकता होती है। साथ ही निश्चित कीवर्ड का उपयोग करके पॉइंटर्स का उपयोग करके सरणी तत्वों तक पहुँचा जा सकता है। ऐसा इसलिए है क्योंकि सरणी और सूचक डेटा प्रकार समान नहीं हैं। उदाहरण के लिए:डेटा प्रकार int[] int* के समान नहीं है।
एक प्रोग्राम जो पॉइंटर्स का उपयोग करके ऐरे एलिमेंट को एक्सेस करने को प्रदर्शित करता है, वह इस प्रकार दिया गया है।
उदाहरण
using System; namespace PointerDemo { class Example { public unsafe static void Main() { int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5}; int n = array.Length; fixed(int *ptr = array) for ( int i = 0; i < n; i++) { Console.WriteLine("array[{0}] = {1}", i, *(ptr + i)); } } } }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है।
array[0] = 55 array[1] = 23 array[2] = 90 array[3] = 76 array[4] = 9 array[5] = 57 array[6] = 18 array[7] = 89 array[8] = 23 array[9] = 5
आइए अब उपरोक्त कार्यक्रम को समझते हैं।
सरणी में int प्रकार के 10 मान होते हैं। सूचक ptr निश्चित कीवर्ड का उपयोग करके सरणी की शुरुआत की ओर इशारा करता है। फिर सभी सरणी मान लूप के लिए उपयोग करके प्रदर्शित किए जाते हैं। इसके लिए कोड स्निपेट इस प्रकार दिया गया है -
int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5}; int n = array.Length; fixed(int *ptr = array) for ( int i = 0; i < n; i++) { Console.WriteLine("array[{0}] = {1}", i, *(ptr + i)); }