C++中怎么通过指针输出字符串?

/*
下面程序片段的输出结果是 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一样) 。; 运行到'}'时的操作。)

{

.......代码

}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网