不明白你什么意思,第一个字母是“h”,因此a[0]=0x0068,当然不会通过判断,但编译不会有问题。

解决方案 »

  1.   

    wchar_t* a = L"heello world";
    if(a[0] == 0x0000)//这样判断居然会失败 
    -------------------------------------------------------------------------------------
    判断失败的意思是 if(a[0] == 0x0000) = FALSE?
      

  2.   

    建议楼主查看memory 信息,就明白了。。
      

  3.   

    if(a[0] == 0x0000)//这样判断居然会失败不知道为什么
    这个if语句本来就是FALSE
      

  4.   

    像 wchar_t* a = L"heello world"; 这种写法本来就欠佳,还有你到底是调用的哪个 api,说清楚点呗。
      

  5.   

    你再转一个unsigned char *吧,也许会看出来 'h', 0, 'e', 0 这样的数。
      

  6.   

    a[0]='h'
    a[0] == 0x0000判断当然失败
      

  7.   

    试试
    wchar_t* a = L"";
    if(a[0] == (wchar_t)0x0000)
    {
    return 0;// !
    }
    else
    {
    return 1;