字符数组、字符串的声明及初始化问题
int main() { char a[2]; char b[2] = {"a", "b"}; char c[3] = {"a", "b", " "}; char* d = "abc"; char* e = new char[2]; return 0; }
声明字符数组a,但未初始化,可见其指向的地址,内容为乱码;
而初始化数组b;其中b[0],b[1]都正确赋值,但其地址所指向的内容除了"a",’b",后面还有一些乱码,这样在cout << b << endl 时,除了输出"ab",后面的乱码也会输出;
为了避免输出乱码,在字符数组c中,给c[3]赋值为" "(字符串结束符);
同理将字符指针d指向字符串“abc”,由于字符串会自动加入结束符‘ ",输出时不会有乱码。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: C字符串数组初始化为空串
- 下一篇: PHP的垃圾回收机制是怎样的(腾讯)