最近看到了一种奇怪的写法,例如下面的代码中:Print(L”%d “,i[segM]); 这个语句,实际上是Print(L”%d “,segM[i]) 的意思。
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/ShellCEntryLib.h>
UINT8 segM[]={
0xAA,0xBB,0xCC,0xDD,0xEE,0xFF
};
INTN
EFIAPI
ShellAppMain (
IN UINTN Argc,
IN CHAR16 **Argv
)
{
;
for (UINT8 i=0;i<6;i++) {
Print(L"%d ",i[segM]);
}
return(0);
}
解释说数组访问操作符 [] 是对称的,即:
a[b] == b[a]
当然了,我个人是非常不建议你在代码中使用上面的方法的。