已知char **s;下面正确语句是()A,s="ABCDEF";B,*s="ABCDEF";C,**s="ABCDEF";D,*s='A'【解析】“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s="ABCDEF"语法错误.“**s”和“s”一
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/06 01:55:26
已知char **s;下面正确语句是()A,s="ABCDEF";B,*s="ABCDEF";C,**s="ABCDEF";D,*s='A'【解析】“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s="ABCDEF"语法错误.“**s”和“s”一
已知char **s;下面正确语句是()A,s="ABCDEF";B,*s="ABCDEF";C,**s="ABCDEF";D,*s='A'
【解析】“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s="ABCDEF"语法错误.“**s”和“s”一样;“*s”是指变量地址,不能给其赋字符串.
看了依旧不懂!
已知char **s;下面正确语句是()A,s="ABCDEF";B,*s="ABCDEF";C,**s="ABCDEF";D,*s='A'【解析】“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s="ABCDEF"语法错误.“**s”和“s”一
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:"<<typeid(**s).name()<<endl;
cout<<"*s:"<<typeid(*s).name()<<endl;
cout<<"s:"<<typeid(s).name()<<endl;
cout<<"\"ABCDEF\":"<<typeid("ABCDEF").name()<<endl;
s=ppt=new char*;
*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;