unsigned char buf=[1,2,3];
unsinged short *p;p = (unsigned short *)buf;
p会有多少个元素,每个元素的值是多少?在线等待!

解决方案 »

  1.   

    我觉得应该是
    p[0] 0x0102
    p[1] 0x0300
    但是结果不时这样
      

  2.   

    我觉得是:
    p[0] = 0x0201
    p[1] = 0x??03
    ??是不确定。因为p1越界了。其实,最简单的办法,写一段代码,自己调试一下不就什么都清楚了么?!
      

  3.   

    不太明白
    实际好象是*(p + 0)= x0201
    *(p + 1)的低字节是3,高字节是乱码
      

  4.   

    题目太离谱了吧?
    unsigned char buf = [1,2,3];
    这是个什么东东?!你本意是这样吗:
    unsigned char buf[3] = {1,2,3};
    unsigned short *p;
    p = (unsigned short *)buf;
      

  5.   

    p [0] = 0x0201
    p [1] = 0x..03高八位不确定
    如果你写unsigned char buf[4] = {1,2,3,4};
    unsigned short *p;
    p = (unsigned short *)buf;
    则 p[0] = 0x0201;
      

  6.   

    p[1] = 0x0403
    pc
    机的存储方式是 高位存高地址 低位存低地址 假设  buf = 0x0045345
    所以  地址 数据
    0x0045345  0x01
    0x0045346  0x02
    0x0045347  0x03
    0x0045348  0x04
    p = 0x0045345
    p [0] 是一个unsigned short型
    有两个字节0x0045345  0x01做低八位0x0045346  0x02 做高八位
    所以 p [0] = 0x0201
    如果有
    int *pWord = ( int* ) buf;
    则 p [0] = 0x04030201;
    p [1]就不得而知了也有 高位存低地址 低位存高地址 ( motorola公司的mcu )