字符串指针

char*s=“abcefg“;那么s[0]=as[1]=bs[5]=g对不对?如果是这样char**s="abcdef";那么s[0]S[1]是什么意思?... char *s=“abcefg“;
那么s[0]=a s[1]=b s[5]=g 对不对?
如果是这样 char **s="abcdef";
那么s[0] S[1]是什么意思?
展开
 我来答
White_MouseYBZ
2011-10-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6614万
展开全部
char *s=“abcefg“;那么s[0]=a s[1]=b s[5]=g 对不对?这是对的,但char **s="abcdef";就不对了。你试了吗?char **s="abcdef";这样写能通过编译?恐怕不行吧!char **s是申明s为指向另一个指向字符型变量的指针的指针,应该这样写才对:char *p=“abcefg“,**s=&p;,但是,用**s可取出指针指向的字符串的内容来,比如有上面的定义,用cout << **s << endl;就可输出字符a。这是因为*在申明语句和运算语句中表达的意思不一样,前者是说紧跟在后面的标识符是个指针,后者是说要取指针中的内容!要输出"abcefg“的话就要写成cout << *s << endl;,因为*s是p[0]的地址,而**s则是p[0]的内容了,它的内容就是a。s[0] 、s[1]的意思是:s[0] 是数组s的第0个元素,而s[1]是数组s的第1个元素。C/C++规定数组元素序号必须从0开始。
ycsxm
2011-10-26 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:7937万
展开全部
1. char *s=“abcefg“;
那么s[0]==‘a’s[1]==‘b’ s[5]==‘g’ 对
2. 不能这样写,会警告的,类型不一致,左边char ** 右边char *
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mengzhong1023
2011-10-26 · TA获得超过243个赞
知道答主
回答量:195
采纳率:100%
帮助的人:105万
展开全部
char *s=“abcefg“;
那么s[0]=a s[1]=b s[5]=g 对不对?
对的,
也可以*s=a,*s+1=b,

如果是这样 char **s="abcdef";
那么s[0] S[1]是什么意思?
这个不明白,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式