zoukankan      html  css  js  c++  java
  • HQ-day10 C#函数传值与OUT传址

     传值,只将这个变量的值给拿走,不返还,除非return赋值。

     将a的值传入函数,无论这个值在函数中如何变化,不会影响main中的a

           

    传址,将这个变量的值拿走运算,完成后还是得返还回来(不用return,用out)

    将a的值传入函数,函数中这个值如何变化,main中的a也会跟着变化

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

    例:将求解一元二次方程改写成函数

        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)) / (a * 2);

                    x2 = (-b - Math.Sqrt(de)) / (a * 2);

                }

                else//de==0

                {

                    Console.WriteLine("此方程有两个相同的实数根!");

                    x1 = (-b + Math.Sqrt(de)) / (a * 2);

                    x2 = x1;

                }

            }

     

            static void Main(string[] args)

           

           {

               double x1;

               double x2;

               Console.WriteLine("求解一元二次方程ax^2+bx+c=0的根的情况及结果:");

               Console.Write("请输入a=");

               double a = double.Parse(Console.ReadLine());

               if (a == 0)

               {

                   Console.WriteLine("此方程不是一元二次方程!");

               }

               else

               {

                   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 (de < 0)

                   {

                       Console.WriteLine("此方程没有实数根!");

                   }

                   else//de>=0

                   {

                       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();

  • 相关阅读:
    【转】汽车CAN总线
    【转】I2C总线协议
    【转】SPI总线协议
    【转】结构struct 联合Union和枚举Enum的细节讨论
    复合类型变量其首地址的几种表示方式
    【转】四款经典3.7v锂电池充电电路图详解
    【转】crc16几种标准校验算法及c语言代码
    【转】 CRC循环冗余校验码
    对STM32库函数中 assert 函数的认知
    【转】用宏定义代替printf函数
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5281269.html
Copyright © 2011-2022 走看看