以下问题在DEVC++中编译
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char str1[] = "I am ";
char str2[] = "happy.";
cout<<str1<<endl<<str2<<endl;
cout<<strcat(str1,str2);
return 0;
}
如上程序的输出结果如下,会先正常的输出原本的str1和str2,在输出两者连接后的字符串
```c++
I am
happy.
I am happy.
但如果按照以下方式编写程序
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char str1[] = "I am ";
char str2[] = "happy.";
cout<<str1<<endl<<str2<<endl<<strcat(str1,str2);
return 0;
}
则运行结果如下
I am happy.
happy.
I am happy.
求解原因