VC++ 是否会把10进制的地址都会自动转换成16进制的呢?假如我知道一个地址偏移是 23C 
我是否能使用 [ 572 ] 代替呢?

解决方案 »

  1.   

    [572]=[0x23c],你这是汇编吧,只要语法支持0X就行了
      

  2.   

    我现在用VC++ 做哦,不是汇编,就算汇编也不用0x吧,最多后面加H
      

  3.   

    查了一下。 访问数组前面一定要有 x[ 123 ] ???
    不能直接使用 [ xxx ] 访问!?
    怎么会这样呢???
      

  4.   

    不知楼主所云.C++里面有 x[ 123 ] 这样的东西吗??数组访问是这样的.char buf[100];buf[17] = 17;  //1
    buf[0x11] = 17; //2实际1和2都是访问相同的数据, 因为 17 = 0x11
      

  5.   

    TO 4L
    不是,我的意思是,为什么不能直接访问一个内存 [XXXX]这样的形式
    例如我获取一个结构的地址,我要直接访问它.那么如何使用这个地址呢?
      

  6.   

    用指针就可以了,类似这样定义:
    typedef struct aa
    {
    xxxx
    xxxx
    }a1,*a2;
    a2[XXX]=
    你这么试试,但上面的结构的定义可能不准确,我是现用现查语法,同时XXX一定要算好,不然会取错误的数据
      

  7.   

    首先,一个整数本身不管写成几进制都不会改变,十进制和十六进制是为了让人类方便理解方便使用,从硬件上讲计算机中所有的东西都是二进制
    然后,程序内使用的地址并不是内存中的真实位置,而是由操作系统管理的内存中分配给你这个程序的部分。如果你使用单片机或者自己编写操作系统,那你的确可以通过地址来访问内存中任何一个位置。但既然你使用VC等编写在操作系统上运行的程序,就请记住,除非你申请(通过定义变量或者new/malloc内存),否则你没有内存可用。你可以使用任何一个整数作为地址,但它对应的只是一个虚假的内存,在操作系统分配给你真实的内存之前,这个地址不可用