假设我有:
unsafe {
byte* start = GetStartLocation();
int something = start[4];
}
什么是something
?内存地址的值从开始向下4个字节?
答案 0 :(得分:6)
说start
指向内存位置0x12345678,内存如下所示:
0x12345678 0x12
0x12345679 0x34
0x1234567a 0x56
0x1234567b 0x78
0x1234567c 0x9a
0x1234567d 0xbc
然后something
等于0x9a
。
something
类型为int
的事实与解释start[4]
的方式无关 - 它获取字节4位置的byte
值远离{{ 1}}。
答案 1 :(得分:2)
某事物的值是从开始加宽到int类型的偏移量4的字节值。
它等同于以下代码
byte temp = start[4];
int something = temp;
答案 2 :(得分:2)
start[4]
将评估为:
*(start + 4)