主题:关于字符串输出的问
snlaocheng
[专家分:0] 发布于 2007-08-07 14:58:00
有字符串;
char a[]="123456789\0", *p=a;
执行语句:
cout<<(p+3)<<'\n';
输出: 456789
我不清楚为什么该语句将字符数组的第四个元素后的元素都输出了,书上也找不到相关的叙述,希望大家给我指点迷津.谢谢!
回复列表 (共5个回复)
沙发
liudan319 [专家分:3780] 发布于 2007-08-07 18:15:00
字符串输出是从输出位直开始一直到遇到‘\0’为止。
板凳
huarui [专家分:0] 发布于 2007-08-07 22:05:00
such as the first floor.
3 楼
snlaocheng [专家分:0] 发布于 2007-08-07 22:48:00
再问一楼,为什么我用:
cout<<*(p+3)<<'\n';
语句就只输出字符串的一个元素:4, 而不输出到'\0'呢?
4 楼
永远精湛 [专家分:1440] 发布于 2007-08-12 16:59:00
*(p+3)只是第四个元素,当然是只输出‘4’了。
而p+3是地址,就是要从p+3那个地方开始输出,直到遇见‘\0’
如果是cout<<p,则就全部输出了。
5 楼
greatmenddc [专家分:0] 发布于 2007-08-12 22:16:00
谢谢四楼的!我懂了.
我来回复