/*
下面程序片段的输出结果是 Hello ,请填空
*/
#include <iostream>
using namespace std;
int main() {
char s[] = "Hello";
char * p;
for(
//your code starts here
p = s; p[0]; ++p
//your code ends here
)
cout << *p ;
return 0;
}
请问for循环的作用是什么?不明白为什么要让p自加,最后cout输出时不是只会输出p所指向的一个字母吗,比如'H'什么的?
是的,其实for后面没有接花括号的时候默认后面一个操作为作用范围,也就是是这样的:
for (p = s; p[0]; ++p)
{
cout << *p;
}
p是个指针,*p默认指向第一个字符, 也就是p[0], 然后++p使指针往后偏移一个单位,所以原本p[0]指向'H'的被迫指向'e'了,以此类推,p[1]指向'l'...
当p[0]指向'\0',也就是字符串的末尾时,条件为false(因为'\0'的ASCII值是0), 然后退出循环
for (进入这个for循环时执行,只执行一次。 ; 条件(和while一样) 。; 运行到'}'时的操作。)
{
.......代码
}
温馨提示:答案为网友推荐,仅供参考