> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?这样做非常危险,之所以允许你这" />
当前位置: 百科大全 > 问答知识 >

字符数组和字符串的区别和联系,字符数组的初始化


字符数组和字符串的区别和联系

什么是字符数组

char a[100]={"hello world "} 就是一个字符数组

C语言字符数组的概念和例题

int [2]={1,2}

C++中的字符数组

因为你使用cin >> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?

这样做非常危险,之所以允许你这样做是因为C++非常灵活,(公路两旁不设栏杆,有时候你的确可以离开公路开到你想去的地方,但如果你酒后驾车呢?)

所以不是特殊情况应使用cin.get(string, sizeof(string)) 或 cin.getline(string, sizeof(string)),或使用更快速和安全的string类:

#include <string>

string str;
cin >> str;
...

C++中的字符数组

因为你使用cin >> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?

这样做非常危险,之所以允许你这样做是因为C++非常灵活,(公路两旁不设栏杆,有时候你的确可以离开公路开到你想去的地方,但如果你酒后驾车呢?)

所以不是特殊情况应使用cin.get(string, sizeof(string)) 或 cin.getline(string, sizeof(string)),或使用更快速和安全的string类:

#include string str; cin >> str; ...

猜你喜欢