请教高手,C++中,char[]是字符串,还是字符数组?
我测试了:
char str[4]={'a','b','c','\0'};
cout<<str<<endl;
和
char str[4]="abc";
cout<<str<<endl;
都输出了abc
那么我见到char[],就说这是一个字符串,对吗?请高手指点,谢谢
老师,谢谢您的指点,麻烦再请教一下,
char *p="helloworld";
cout<<p;
请问为什么会输出 helloworld?
p是字符型指针,p指向的也只是'h'的地址,和字符串一点关系也没有,为什么cout<<p会输出整个字符串呢? 请老师指点,万分感谢。
如果"<<"后面是一个char*类型的地址,那么就从该地址按字节读取并输出,直到碰到0为止,这是C++的重载特性,"<<"对于不同类型的地址,处理方法不同
这和C语言的printf() %s格式符差不多,%s格式符的意思就是:对应的参数是一个char*类型的地址,从该地址按字节读取并输出,直到碰到0为止
char *p="helloworld"; //helloworld只是保存的位置不一样,保存在只读区,其他特性和字符串一样
char str[4]; //对于"<<"来说str不是个数组,它就是个char*类型的地址