char **p = NULL;const char **q = p;使用vs2010编译,出现错误:
错误 1 error C2440: “初始化”: 无法从“char **”转换为“const char **”

解决方案 »

  1.   

    const是常值,你的目的是**q= NULL,直接const char **q= NULL;就是了
      

  2.   

    与值无关,只是为什么 const char **q = p; 出错原因何在
      

  3.   

    需要你强制转化 char **p = NULL;

    const char **q = (const char **)p;
      

  4.   

    char **p指向可变,而const char **q 指向不可变
      

  5.   

    你把一个可变的值赋给一个const(只读)的值,当然出错
      

  6.   

    char *p = &str;
    const *q = p;这样没有问题呀
      

  7.   

    这里的p的内容是&str,而q的内容是p的地址
      

  8.   

    这里 char *p = ...;   const char *q = p; 是可以的而   char **p = ....; const char **q = p; 是错误的
      

  9.   

     VC6下测试char *p = ...;   const char *q = p;是不可以的 
      

  10.   

    9楼测试错了吧,char **p = ...;
    char const * const * const q = p;可以通过,只是语法不太明白
      

  11.   

    char **和const char **都是没有限定符的指针类型,但他们所指向的类型不一样(前者指向char *,后者指向const char*),因此他们是不相容的。