首页 > 其他 > 详细

3月15日 传址

时间:2016-03-15 23:29:16      阅读:263      评论:0      收藏:0      [点我收藏+]

传值,只将这个变量的值拿走,不返还,除非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();
}

 

3月15日 传址

原文:http://www.cnblogs.com/dongqiaozhi/p/5281555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!