C# 为什么我将局部变量赋给全局变量后全局变量始终为0
代码如下://全局变量int[]Arr_Point=newint[2];//函数privatevoidPoint(intLine1,intLine2,intLine3){...
代码如下:
//全局变量
int[] Arr_Point = new int[2];
//函数
private void Point(int Line1, int Line2,int Line3)
{
int x, y;
for (y = 0; y < 187; y++)
for (x = 0; x < 208; x++)
{
try
{
if (Math.Abs((x - 25) * (x - 25) + (y - 135) * (y - 135) - Line2 * Line2) <= 5 &&
Math.Abs(((x - 25 - Line3) * (x - 25 - Line3) + (y - 135) * (y - 135)) - Line1 * Line1) <= 5)
{
//局部变量赋值给Arr_Point[],但复制后其始终为0,不知为何????
Arr_Point[0] = x;
Arr_Point[1] = y;
}
}
catch (Exception ex)
{
label6.Text = "Warring";
}
}
} 展开
//全局变量
int[] Arr_Point = new int[2];
//函数
private void Point(int Line1, int Line2,int Line3)
{
int x, y;
for (y = 0; y < 187; y++)
for (x = 0; x < 208; x++)
{
try
{
if (Math.Abs((x - 25) * (x - 25) + (y - 135) * (y - 135) - Line2 * Line2) <= 5 &&
Math.Abs(((x - 25 - Line3) * (x - 25 - Line3) + (y - 135) * (y - 135)) - Line1 * Line1) <= 5)
{
//局部变量赋值给Arr_Point[],但复制后其始终为0,不知为何????
Arr_Point[0] = x;
Arr_Point[1] = y;
}
}
catch (Exception ex)
{
label6.Text = "Warring";
}
}
} 展开
展开全部
1)局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。
2)局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。
2)局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。
追问
这个我知道啊,我是在循环体内将局部变量赋值给了全局变量,按道理来说全局变量 Arr_Point[0] , Arr_Point[1] ;就因该有值了啊!可是为什么还是为其初始化时候的0!!!
追答
刚试了一下,这全局变量对于所有函数是平等的,在这个函数里面你对它赋值,它就是这个值,在别的函数里面调用时它会是最初的值,否则你要把让它改变的函数调用一遍,它的值才会改变。
int[] x=new int[2];
protected void Page_Load(object sender, EventArgs e)// 这个函数网页一开就执行了。
{
x[0] = 5;
x[1] = 2;
}
protected void xnum()
{
x[0] = x[0] - 1;
x[1] = x[1] - 1;
}
protected void Button1_Click(object sender, EventArgs e)
{
xnum(); // 如果不调用这个xnum 这里div显示的会是"5xxx2"
Div.InnerText = x[0].ToString() +"xxx"+ x[1].ToString();// 调用了 xnum() 就显示"4xxx1“ 所有全局变量是这么个意思,并不是经过一个函数值就变了且对于下一个函数就是变化后的值,C#里面的函数顺序并不怎么要求,不像c中,其他函数要先声明,否则调用时还会出错。
}
参考资料: http://zhidao.baidu.com/question/329842734.html?an=0&si=3
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询