亲爱的堆栈溢出社区
我正在学习C和C ++,并且我有一些与String指针和字符数组相关的问题。
我做了一个简单的程序:
void Strings (void)
{
char String1 [20];
cout<<"Please Enter your String1: "<<endl;
cin>>String1;
cin.ignore ();
cout<<String1<<endl;
}
String1 [20]
,包含20个元素的字符数组cin>>String1;
String1充当指向数组的指针,我输入的内容将存储在String1中,我对程序进行了以下更改。
void Strings (void)
{
char*String0 = new char[20];
cout<<"Please Enter your String0: "<<endl;
cin>>String0;
cin.ignore ();
cout<<String0<<endl;
}
为什么char*String0 = new char[20]
一个空格为20个字符的字符指针可以存储34个字符的字符串,但是char String1 [20]
一个20个元素的字符数组不能存储。我不应该在两个例子中都出错,因为我输入的字符串超过了他们持有/指向的空间?
提前谢谢。
亚当