C++中,数组名代表首元素的地址,那为何cout字符数组名输出的确实整个数组?而不是首元素?
C++中,数组名代表首元素的地址,那为何cout字符数组名输出的确实整个数组?而不是首元素?请大神指点下...
C++中,数组名代表首元素的地址,那为何cout字符数组名输出的确实整个数组?而不是首元素?请大神指点下
展开
1个回答
2018-03-05
展开全部
cout不是iostream中的吗?
#include <iostream>
using namespace std;
int main(){
char ch[]="hello world!\0";
cout<<ch<<endl;//整个字符串
cout<<ch[0]<<endl;//第一个字符‘h’
cout<<&ch<<endl;//地址
return 0;
}
#include <iostream>
using namespace std;
int main(){
char ch[]="hello world!\0";
cout<<ch<<endl;//整个字符串
cout<<ch[0]<<endl;//第一个字符‘h’
cout<<&ch<<endl;//地址
return 0;
}
更多追问追答
追问
那是否数值数组也是一样的呢?
追答
那要看cout对运算符(
class ostream
{
public:
ostream(){}
virtual ~ostream(){}
ostream operator<<(char *pchr){
while(pchr[0]!=0){
printf("%c",pchr[0]);
++pchr;
}
return *this;
}
ostream operator<<(int *pint){
printf("%s","我是这样处理的!");
}
};
static ostream cout;
int main(){
char endl[]="\n\0";
char ch[]="hello world!\0";
cout<<ch<<endl;
int num[]={1,2,3,4,5};
cout<<num<<endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询