概述
#include <iostream>
#include <string>
using namespace std;
int main()
{
const char ca[] = {'h','e','l','l','o'};
const char *cp = ca;
while (*cp)
{
cout<<*cp<<endl;
++cp;
}
return 0;
}
代码有问题,ca为并不是以null结尾,所以判断while(*cp)时,会直到一个null才结束,也就是打印出来的内容会多余5个。
while(*cp):判断cp所指内容是否为true,真值表明除null外的任意字符。
稍作修改:
const char ca = "hello";
即可。系统会自动在字符串末尾添加结束符'