一个C++的问题,请解答

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:38:33
#include<iostream.h>
void fn(int n)
{
if(n>5)
int i=n; //整型i的作用域从此开始,到此结束。
else
double i=n; //double i的作用域从此开始,到此结束。
cout<<i<<endl; //error i无定义
}

为什么i的作用域从那里开始就又从那里结束了??还有那个double i也是。而且为什么cout<<i<<endl;那个i又无定义了?知道的请解释详细一点,我是初学者,谢谢

上面的程序可以写成下面这样~·就很好理解了~~
#include<iostream.h>
void fn(int n)
{
if(n>5)
{
int i=n; //整型i的作用域从此开始,到此结束。
}
else
{
double i=n; //double i的作用域从此开始,到此结束。
}
cout<<i<<endl; //error i无定义
}

难度高啊!

#include<iostream.h>
void fn(int n)
{
if(n>5)
{
int i=n; //当n大于5的时候,整型i的作用域从此开始,到此结束。
}
else
{
double i=n; //当n不大于5的时候,double i的作用域从此开始,到此结束。
}
cout<<i<<endl; //error i无定义 i无法判定究竟是int还是double,所以错误。
}