C#固定指針簡單介紹
作者:佚名
這里簡單介紹C#固定指針,在C#固定指針時,使用關鍵字fixed將能阻止程序運行時無效指針的產生。讓我們看看它是如何工作的。
C#固定指針
在語句塊前輸入關鍵字fixed,將會告訴CLR塊內的對象不能重定位,這樣CLR就不會重定位指針指向的數據存儲位置。因此在C#固定指針時,使用關鍵字fixed將能阻止程序運行時無效指針的產生。讓我們看看它是如何工作的:
- using System;
- class CData
- {
- public int x;
- }
- class CProgram
- {
- unsafe static void SetVal(int *pInt)
- {
- *pInt=1979;
- }
- public unsafe static void Main()
- {
- CData d = new CData();
- Console.WriteLine("Previous value: {0}", d.x);
- fixed(int *p=&d.x)
- {
- SetVal(p);
- }
- Console.WriteLine("New value: {0}", d.x);
- }
- }
我們在這段代碼里通過一個fixed塊,將CData對象數據成員(域)x的地址賦給了一個整數型指針p。當fixed塊中的語句被執行時,這個指針p將一直指向原來的那塊內存區域,因為CLR已被指示暫時凍結這個變量直到該fixed塊執行完畢。一旦fixed塊執行完畢,這個對象就又能被CLR 重新定位了。
以上就是C#固定指針編程的介紹,關鍵是要說明語句塊是unsafe并fixed的。希望能因此提高你對C#固定指針使用的知識!
【編輯推薦】
責任編輯:佚名
來源:
博客園