char s[]="aaaa"char *ps=s; 那么cout<

char s[]="aaaa";char *ps=s; 那么cout<<ps;与cout<<*ps;有什么区别啊。为什么第一个输出aaaa而第二个输出a
这里的指针ps不是指向字符数组中第一个元素莫?
*ps输出a我能理解。为什么ps会输出aaaa?
string s="aaaa"
string ps=&s;
输出ps指的字用*ps行。也不能用ps输出啊。咋char 能。有什么区别啊?

------解决方案--------------------
输出遇到'\0'结束

------解决方案--------------------
字符串撒

cout<< ps; 输出ps指向的字符串
cout<< *ps; 输出ps指向的字符
------解决方案--------------------
因为 char *ps
所以 ps是指针,cout输出遇到'\0'结束,而 *ps是char
------解决方案--------------------
不能 *p=s 
s.c_str()