关于c++ using namespace std;的

来源:百度知道 编辑:UC知道 时间:2024/06/30 01:55:01
char a[10];
loop: cin.getline(a,10,'\n');
if(strlen(a)>=8)
{
char *p=new char[4];
cin.getline(p,4,'\n');
while(strlen(p)>=3)
{
delete []p;
p=new char[4];
cin.getline(p,4,'\n');
}
delete []p;
cout<<a<<endl;
}
if(strcmp(a,"是")!=0&&strcmp(a,"否")!=0)
goto loop;
cout<<a<<endl;
while(strcmp(a,"是")==0)
{
loop1: cin.getline(a,10,'\n');
if(strlen(a)>=8)
{
char *q=new char[4];
cin.getline(q,4,'\n');
while(strlen(q)>=3)
{
delete []q;
q=new char[4];
cin.getline(q,4,'\n');
}

最没法解释的问题就是这样的: 这个程序是错了,可是当我这样写的时候他死得很体面, 当我那样写的时候它死不瞑目, 为什么?。。

数组越界会对程序行为有什么影响,这是无法估计的, 唯一的建议就是尽量确保越界的情况不发生。 至于发生之后的后果,无论怎么表现出来都没差别, 反正是出错了,你需要把它改正确。

为什么使用using namespace std;会使窗口死机呢?

应该不是他的问题.

从程序上查吧

不是使用using namespace std;会使窗口死机,这点vbtraz的解释已经很不错了。
你要明白一点使用using namespace std;是标准的C++,在标准下不通过就是不对的。而iostream.h这种微软的内部过渡结构的包容性对你的成长一点好处都没有。和vbtraz一样的意见,改掉自己错误的地方。这样你能够写出更漂亮的程序,也会更强大

vbtraz回答的很好