请教一个C++基础问题

wetcom 2013-01-27 04:24:12
小弟初学C++有许多迷惑和不解,下面请教一个基础的问题。有如下代码,
char chars[5]= {'a',' ','b','c','x'};
char* strs = chars;
int i = 0;
while(*(strs+i++))
{
cout << "执行第"<< i <<"次";
}
我申明了一个有5个字符的 char 数组,然后设置了一个指向 这个数组的指针,为什么在循环的时候,本来数组的上标是5,但是循环的时候确大于了5次,并且随着chars数组上线的增长循环次数会有所增加,其中没有发现什么规律,请问是怎么回事呢?
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wetcom 2013-01-27
  • 打赏
  • 举报
回复
哦,那姑且先认为是编译器干的吧。OK,结贴
lee_鹿游原 2013-01-27
  • 打赏
  • 举报
回复
引用 2 楼 wetcom 的回复:
引用 1 楼 lile1234_show 的回复:程序中依靠检测 '\0' 的位置来判断字符串是否结束。 这个我知道啊,我的意思是该指针指向的数组为什么在循环的时候大于了5次,当然我理解你的意思是加上'\0'以后就大于了5次,是6次,但实际代码运行的时候是15次,后面多跟了很多不认识的字符。是系统自己加上去的吗?
嗯,具体看编译器怎么处理
wetcom 2013-01-27
  • 打赏
  • 举报
回复
引用 1 楼 lile1234_show 的回复:
程序中依靠检测 '\0' 的位置来判断字符串是否结束。
这个我知道啊,我的意思是该指针指向的数组为什么在循环的时候大于了5次,当然我理解你的意思是加上'\0'以后就大于了5次,是6次,但实际代码运行的时候是15次,后面多跟了很多不认识的字符。是系统自己加上去的吗?
lee_鹿游原 2013-01-27
  • 打赏
  • 举报
回复
程序中依靠检测 '\0' 的位置来判断字符串是否结束。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧