3月15日 传址

传值,只将这个变量的值拿走,不返还,除非return赋值。将a中的值传入函数,无论这个值在函数中如何变化,不会影响main中的值。

传址,将这个变量的值拿走运算,完成后还是要返还回来(不用return用out),将a的值传入函数,函数中这个值如何变化,main中的a也会跟着变化。

相当于:函数中的这个值,是main中a的快捷方式。

 

例:求解一元二次方程ax^2+bx+c=0的根的情况及结果:

 public void Fangcheng(double a,double b,double c,out double x1,out double x2) 
        {
            double de = b * b - 4 * a * c;
            if (de > 0)
            {
                Console.WriteLine("此方程有两个不相同的实数根");
                 x1 = -b + Math.Sqrt(de) / (2 * a);
                 x2 = -b - Math.Sqrt(de) / (2 * a);
            }
            else 
            {
                Console.WriteLine("有两个相同的实数根" );
                 x1 = -b + Math.Sqrt(de) / 2 * a;
                 x2 = x1;
            }
        }
 static void Main(string[] args)
        {
 //一元二次方程,传出x1,x2
            double x1;
            double x2;
            Console.WriteLine("求解二元一次方程ax^2+b*x+c=0根的情况及结果");
            Console.Write("请输入a=");
            double a = double.Parse(Console.ReadLine());
            Console.Write("请输入b=");
            double b =double.Parse(Console.ReadLine()); 
            Console.Write("请输入c=");
            double c = double.Parse(Console.ReadLine());        
            double de = b * b - 4 * a * c;
            if (a == 0)
            {
                Console.WriteLine("这个方程不是一元二次方程");
            }
            else
            {
                if (de < 0)
                {
                    Console.WriteLine("没有实数根");
                }
                else 
                {
                    Program pp = new Program();
                    pp.Fangcheng(a,b,c,out x1,out x2);
                    if(x1==x2)
                    {
                        Console.WriteLine("x1=x2="+x1);
                    }
                    else
                    {
                        Console.WriteLine("x1="+x1);
                        Console.WriteLine("x2"+x2);
                    }
                }
            }

            Console.ReadLine();
}

 

posted @ 2016-03-15 22:29  D董小姐  阅读(175)  评论(4编辑  收藏  举报