B才是对的吧不考虑类型强转并且 在此前有 s=new char*;
typedef char * pchar;
pchar *s;
s可以看成以上定义 也许更方便理解
typeid("ABCDEF").name()是const char [7];
typeid(*s).name()是char *;
typeid(**s).name()是char;
如果考虑强转可以参考如下
s=new char **;//s=(char **)(void*)("ABCDEF");
*s=new char *;//**s=(char)(long)(void*)("ABCDEF");
//*s=(char*)(long)('A');
如下操作经过VS2010 测试
char **s,**ppt,*pt,p;
cout *s=pt=new char ; **s=p='A'; **s=(char)(long)(void*)"A"; *s=(char*)(long)'a'; *s="B"; s=(char **)(void *)"C"; s=(char**)(void*)(long)'d'; delete ppt; delete pt;