const char* pstr 和char * 的区别?

解决方案 »

  1.   

    不对,const char *pstr的内容不能变。但地址可以变。
    char *没有限制。// constant_values4.cpp
    #include <stdio.h>
    void main()
    {
       const char *mybuf = "test";
       char *yourbuf = "test2";
       printf("%s\n", mybuf);   const char *bptr = mybuf;   // Pointer to constant data
       printf("%s\n", bptr);
       
       // *bptr = 'a';   // Error
    }
    来自msdn,此处bptr是一个指向常量的指针。但bptr也可以指向其他常量,但不能改变常量的值
      

  2.   


    const char *pc="test";
    如果你*pc='a';这样就是错误的,因为pc指向的地方不能变
      

  3.   

    哦cosnt char * 所指的东西不能改变,
    比如const char *ppp = str
        str 就不能变了,是吗?
      

  4.   

    const char* p1 = "aaaaa"
    char*       p2 = "bbbbb"
    p1 = p2;
    无错,p1地址改为p2地质,所以p1地质师可以改变的。
      

  5.   

    const char* p1 = "aaaaa";
    CString str = "bbbb";
    p1 = str;
    str = "cccc";
    此时没错,p1指向的内容为"cccc" p1[0] = 'd';
    此时出错,不能复职
      

  6.   


    其实看一下const修饰的是就知道了。修饰的是其邻近后面的元素const char * ptr  其修饰的是char*