c++ 不明白输出结果的理由 谢谢大家

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:21:00
#include<iostream>
using namespace std;
void main()
{char *p;
char str1[]="i like beijing";
char str2[]="how are you!";
p=str1;
cout<<*p<<endl;
cout<<p<<endl; //这里结果不明白
p=str2;
cout<<p<<endl; //这里结果不明白
}
p不是指针么,不是应该指向数组第一个吗?怎么会输出i like beijing 和how are you! ??????

输出的结果:
i //首地址
i like beijing//字符串
how are you!//字符串
*p和P是不一样的
*p是首地址 也就是第一个字符
P是char类型的字符串

p是str1的首地址啊 ,cout它会一直输出,直至出现\0才会终止!所以输出i like beijing(\0)!只不过\0不显示而已

cout是流输出,给他一个地址他会一直检索知道遇到'\0'标志,终止检索,将检索到的内容依次输出..

cout是输入输出流中的一个函数...它会一直输出到"/0"