char* pPackage=new char[packsize];
*(WORD*)&pPackage[2] = 0;
这里的&是什么意思??看不懂!说具体点哦!

解决方案 »

  1.   

    这两个语句是将头两个字符chars转成WORD类型并赋值.
    在intel中字节序是little endian,因此, 取第二个字节作为WORD指针地址.
      

  2.   

    真拗呀:)
    pPackage[2]是第三个字节,可以理解为强制转换的第二个WORD*的地址
    不如这样写:
    pPackage[2] = '\0';
    pPackage[3] = '\0';
    或者memset(pPackage,'\0',4);
      

  3.   

    char* pPackage=new char[packsize]; 
    *(WORD*)&pPackage[2] = 0; 分开来看嘛
    pPackage是一个指向 字符数据的 指针;pPackage[2] 就是一个字符数据;& pPackage[2] 就把 pPackage[2]的指针提出来了;(WORD*) &pPackeage[2],把提出来的指针转化成WORD类型的;
    * (WORD*) &pPackeage[2]   转换成WORD类型之后再用*号指向地址,现在这串其实就代表转换成WORD后的pPackage[2]的位置;最后,把0赋值给他;