C# में, एक सरणी नाम और उसी डेटा प्रकार के डेटा के पॉइंटर, समान वेरिएबल प्रकार नहीं हैं। उदाहरण के लिए, int *p और int[] p, समान प्रकार नहीं हैं। आप पॉइंटर वेरिएबल p को बढ़ा सकते हैं क्योंकि यह मेमोरी में फिक्स्ड नहीं है लेकिन एक सरणी पता मेमोरी में फिक्स्ड है, और आप उसे बढ़ा नहीं सकते।
यहां एक उदाहरण है:
उदाहरण
using System;
namespace UnsafeCodeApplication {
class TestPointer {
public unsafe static void Main() {
int[] list = {5, 25};
fixed(int* ptr = list)
/* आइए सरणी पते को पॉइंटर में रखें */
for (int i = 0; i < 2; i++) {
Console.WriteLine("list[{0}] का पता = {1}", i, (int)(ptr + i));
Console.WriteLine("list[{0}] का मान = {1}", i, *(ptr + i));
}
Console.ReadKey();
}
}
}
आउटपुट
यहां आउटपुट है:
list[0] का पता = 31627168 list[0] का मान = 5 list[1] का पता = 31627172 list[1] का मान = 25