Blob的定义如下:
unsigned char* blob=new unsigned char[64];
然后我们尝试使用即时窗口
blob+12
0x084F8854
*blob+12: 0x75 'u'
blob+13
0x084F8855
*blob+13: 0x11 ''
blob+14
0x084F8856
*blob+14: 0x94 ''
blob+12,3
0x084F8854
[0]: 0x75 'u'
[1]: 0x0 ''
[2]: 0x0 ''
为什么不用blob + 12,3显示blob 12的3个值?这是做什么的呢?
答案 0 :(得分:3)
更一般地说,“blob,20”有效,但“blob + 0,20”不起作用。
我最好的猜测是托管表达式评估程序的错误。如果你查看MSDN,他们会详细说明这些东西是如何工作的,而这些东西是行不通的。可能是,在评估者的扭曲思想中,blob + 12构成了char类型的1元素数组,因此无法显示超出第一个元素的元素。
答案 1 :(得分:0)
语言是C ++。他定义了一个unsigned char数组并使用立即窗口观察变量值。数组名称是blob。我试过VS2008,我用char指针验证。当你说blob + 12,3 ..时,它被转换为(blob + 12)[0],(blob + 12)[1],(blob + 12)[2] ..这与blob +基本相同13,blob + 14和blob + 15很快。