c++简单问题,似懂非懂的寻求高人详细讲解!!!在线等待!!

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:51:04
#include <iostream>
using namespace std;
void main()
{
int a=10,b=20;
cout<<a<<','<<b<<endl;
{
int a=0;
for(int i=1;i<5;i++)
{
a+=i;
b+=a;
}
cout<<a<<','<<b<<endl;
}
cout<<a<<','<<b<<endl;
}
在这个程序当中,当再次令a=0时,为什么不会出现a被重复定义的错误呢?而且还有第三个cout输出的结果为什么是10 和40 呢?为什么不是10和20 呢?

int a=10,b=20;
cout<<a<<','<<b<<endl;
{
int a=0;

问题在这里 你的{等于没有 范围是一样的。。。

至于你的第二个问题 你没有定义B
A的值是从0开始的 你是去掉了 int a=0; 前面的int了吧 1+2+3+4=10

问题就在那个貌似多余的{},它把main函数分成了两部分,而且两部分已经没有联系

在第二个{之前的a,b分别是10和20

之后的a和b就是10和40了