我对以下代码感到困惑......请澄清。阵列角色持有超过预期
当我使用此代码:
#include<iostream>
using namespace std;
int main()
{
char array[10];
cin>>array;
int i=0;
while(array[i]!='\0')
{
cout<<array[i];
i++;
}
}
,给输入:qwertyuiop
- 10个字符。它的输出是qwertyuiop
。
但是当我像下面给出的代码那样初始化数组时,它给出了字符串对于数组来说太长的错误!说明?
#include <iostream>
using namespace std;
int main() {
char array[10]="qwertyuiop";
int i=0;
while(array[i]!='\0')
{
cout<<array[i];
i++;
}
}
你的第一个例子是缓冲区溢出,第二个例子是不会编译的,因为你试图将11 char'填充到10 char元素中。 – Blastfurnace