#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
//第一种
char a[] = "321312";
//第二种
char bb[] = {'s','s','z'};
//第三种
string c = "lalsldlfsa";
//第三种
char* d = bb;
cout << bb << endl;
return 0;
}
返回如下 :
问题: 输出bb 为什么把a的值 也输出了?? 麻烦各位帅哥美女解答下
字符数组应该以‘\0’结尾,如果没有'\0'结尾,会一直输出直到遇到'\0'为止。
其中a的'\0'是自带的,但是b的写法就需要在末尾再输入'\0',即
char bb[] = {'s','s','z','\0'};
或者
char bb[4] = {'s','s','z'};
第二种写法的末尾就有空间给'\0',也是正确的
因为他们的地址是连续的,可以查看他们的地址
cout << &bb << "\t"<< &a << "\t"<< &c<<endl;
输出是遇到'\0'停止,所以会一直输出直到遇到'\0'