怎么把 int * 转换成 unsigned short

如何把 int * 转换成 unsigned short *
C/C++ code

void main()
{    
    int temp = 9;
    int *i= &temp; 
    unsigned short *j= (unsigned short *)(*i<<8);
    printf("\r\n j=%d\r\n",j);
}



结果不对。

------解决方案--------------------
C/C++ code

    int temp = 9;
    int *i= &temp; 
    unsigned short *j= (unsigned short *)i;
    printf("\r\n j=%d\r\n",*j);

------解决方案--------------------
你要什么结果?
------解决方案--------------------
你应该说一下你的程序要做什么
unsigned short *j= (unsigned short *)(*i<<8);
这个,你把一个int强转成一个地址有什么意义吗?
unsigned short *j = (unsigned short *)&temp;这样直接转就可以了
------解决方案--------------------
C/C++ code

int temp = 9; //0x9
    int *i= &temp; 
    unsigned short *j= (unsigned short *)(*i<<8); // *i << 8 == 0x900 == j
    printf("\r\n j=%d\r\n",j); //0x900 == 2304