C++, DevStudio, array indices, why does this work? :     #include <windows.h> 
    #include <stdio.h>
    
    WCHAR *HiveName[4] = {L"HKCR", L"HKCU", L"HKLM", L"HKU"};
    
    int wmain( INT argc, WCHAR **argv )
    {
    	for ( DWORD i = 0x80000000; i < 0x80000004; i++ )
    		wprintf(L"%lu %s\n", i, HiveName[i]);
    	return 0;
    }

Output:

2147483648 HKCR

2147483649 HKCU

2147483650 HKLM

2147483651 HKU

Why does it work?
