LPCTSTR Pname="RKill"; 可以LPCTSTR Pname; 就不可以,我实在是没有搞明白..
Pname="RKill"LPCTSTR 为 const char * 类型 我看了书,下面那种好象不错呀,为什么?还是没有搞明白呀..郁闷

解决方案 »

  1.   

    const char * 必须在定义的时候就赋值。如果LPCTSTR Pname;
    再Pname="RKill";会出错。
    因为const为常量类型。不允许你再修改它的值。
      

  2.   

    char b,c;LPCTSTR Pname;Pname=&b   
    Pname=&c    这样是可以修改的
      但是* Pname是不能改的,我是这样认为的..
      

  3.   


      但是* Pname是不能改的,我是这样认为的..书上也是这样写的.. 表示指向的对象是常量
      

  4.   

    表示指向的对象是常量是因为
     LPCTSTR 为 const char * 类型
      

  5.   

    在定义时赋值,这是const的本义啊详细可对照
    const char *p //*p不可变,p可变
    char* const p //p不可变, *p可变
    的区别
      

  6.   

    LPCTSTR是local pointer to const string ,相当于常量字符串,必须在初始化时赋值,
      

  7.   

    const char * 必须在定义的时候就赋值。
    const运行期间不能改变其值
      

  8.   

    TO:Stefine(抢分ing) const char *p //*p不可变,p可变
    char* const p //p不可变, *p可变照你这样说,LPCTSTR是const char *pLPCTSTR Pname="RKill";   那后面我还可以这样Pname="teo"  Pname是可以改变的呀,只是*Pname是不可以修改的哦
      

  9.   

    谁说的不可以!!!  
    ===================================================
    LPCTSTR Pname="RKill"
    等同于
    char temp[] ="Rkill";
    const char* Pname = temp;
    ===========================================
    LPCTSTR Pname; 
    Pname="RKill"
    等同于
    const char* Pname;
    Pname="RKill";//只是改变指针的值,指针所指对象并没发生改变!!!
    ==============================================
    LPCTSTR Pname;
    Pname = "TEST";
    AfxMessageBox(Pname);
    这段代码我测试了的,完全没有问题!!!