猿问

指针的问题

在处理图片的时候看到代码

 BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width,
            b.Height), ImageLockMode.ReadWrite,
            PixelFormat.Format24bppRgb);
          System.IntPtr Scan0 = bmData.Scan0;
                     unsafe
            {
                byte* p = (byte*)(void*)Scan0;

 

这里的(byte*)(void*)是什么意思?


慕沐林林
浏览 264回答 2
2回答

湖上湖

一句话:C++中无类型指针---void *是万能指针。可以转化为其它的类型注:所有的指针,在windows系统下都是4个字节       指针自加是和类型有关系,void不属于任何类型       任意两个类型的指针之间都可以使用强制类型转换,但是指针指向的数据是否可以兼容两种类型是另外的问题

料青山看我应如是

把 IntPtr 类型的 Scan0 强制转换成 byte* 类型,也就是说指向 byte 类型的指针。当这样的类型指来指去的时候,按照1字节的长度前进或后退。
随时随地看视频慕课网APP
我要回答