新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#固定指針簡單介紹
C#固定指針

在語句塊前輸入關鍵字fixed,將會告訴CLR塊內(nèi)的對象不能重定位,這樣CLR就不會重定位指針指向的數(shù)據(jù)存儲位置。因此在C#固定指針時,使用關鍵字fixed將能阻止程序運行時無效指針的產(chǎn)生。讓我們看看它是如何工作的:
- 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對象數(shù)據(jù)成員(域)x的地址賦給了一個整數(shù)型指針p。當fixed塊中的語句被執(zhí)行時,這個指針p將一直指向原來的那塊內(nèi)存區(qū)域,因為CLR已被指示暫時凍結這個變量直到該fixed塊執(zhí)行完畢。一旦fixed塊執(zhí)行完畢,這個對象就又能被CLR 重新定位了。
以上就是C#固定指針編程的介紹,關鍵是要說明語句塊是unsafe并fixed的。希望能因此提高你對C#固定指針使用的知識!
本文題目:C#固定指針簡單介紹
本文URL:http://m.fisionsoft.com.cn/article/djdiiec.html


咨詢
建站咨詢
