VC++中char *是一个32位的指针,在Win32中已经不用分段寻址了,而是线性寻址,32bits可以寻址范围为0x00000000 -- 0xFFFFFFFF即4G。

解决方案 »

  1.   

    保存的是字符串的首地址,请看下列代码的结果。
    #include "stdafx.h"
    #include "string.h"
    int main(int argc, char* argv[])
    {
    char* ch;
    char c[10];
    strcpy(c,"Hello!");
    ch=c;
    printf("%d\t",ch);
    printf("%d\n",c);
    printf("%d\n",&c[0]);/*字符串的第一个字节的地址*/
    return 0;
    }
      

  2.   

    请参考holyfire的解释。如果想对这些方面的内容有更深层次的了解,找本书看看Windows是如何进行内存管理的。非三言两语可以解决。
      

  3.   

    p保存的是一個字符型變量地址,也可以是字符串變量的首地址.
    如:
    char a="c"
    char *p
    p=&a
    就是 p指向a這個變量的地址,也就是"c"這個字符所撰的内存區域.