10.C# -- 函数参数,参数数组,值传递函数,引用传递函数,输出函数,无参函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
    class Program
{
        static int val;
        //函数
        //1. 关键字static:静态函数,void:无返回值,return:程序立即返回调用代码;
        //实例1: 函数参数
        static double product(double param1, double param2)
{
            return param1 * param2;
}
        //实例2: 参数数组
        static int Add(params int[] p)
{
            int sum = 0;
            foreach (int i in p)
            sum += i;
            return sum;
}
        //实例3: 值传递函数,结果不改变
        static void ShowDoulbe(int val)
{
            val *= 2;
            Console.WriteLine("val doubled ={0}", val);
}
        //实例4: 无参函数,结果改变
        static void ShowDoulbe()
{
            val *= 2;
            Console.WriteLine("val doubled ={0}", val);
}
        //实例5: 引用传递函数,结果改变
        static void ShowDoulbe(ref int val)
{
            val *= 2;
            Console.WriteLine("val doubled ={0}", val);
}
        //实例6: 输出函数
        static void outfun(out string str)
{
            str = "test";
            str += "fun";
            Console.WriteLine("outfun result: {0}", str);
}
        static void Main(string[] args)
{
            //调用函数参数
            Console.WriteLine("Call func parameter;");
            double a = product(1.2, 2.1);
            Console.WriteLine(a);
            //调用参数数组
            Console.WriteLine("Call parameter array;");
            int sum = Add(1, 3, 5, 7);
            Console.WriteLine(sum);
            //调用无参函数,结果改变
            Console.WriteLine("Call non-parameter func;");
            val = 5;
            Console.WriteLine("Befor the call;");
            Console.WriteLine("myNumber={0}", val);
            Console.WriteLine("After the call;");
            ShowDoulbe();
            Console.WriteLine("myNumber={0}", val);
            //调用值传递函数,结果不改变
            Console.WriteLine("Call value-passed func;");
            int myNumber = 5;
            Console.WriteLine("Befor the call;");
            Console.WriteLine("myNumber={0}", myNumber);
            Console.WriteLine("After the call;");
            ShowDoulbe(myNumber);
            Console.WriteLine("myNumber={0}", myNumber);
            //调用引用传递函数,结果改变
            Console.WriteLine("Call reference-passed func;");
            int myNumber2 = 5;
            Console.WriteLine("Befor the call;");
            Console.WriteLine("myNumber={0}", myNumber2);
            Console.WriteLine("After the call;");
            ShowDoulbe(ref myNumber2);
            Console.WriteLine("myNumber={0}", myNumber2);
            //调用输出函数
            Console.WriteLine("Call out parameter function;");
            string test2;
            outfun(out test2);
            Console.ReadLine();
}
}
}
 
 
 
时间: 2024-08-15 19:29:30

10.C# -- 函数参数,参数数组,值传递函数,引用传递函数,输出函数,无参函数的相关文章

php函数间的参数传递(值传递/引用传递)

php:函数间的参数传递 1.值传递 代码如下: <?php function exam($var1){ $var1++: echo "In Exam:" . $var1 . "<br />"; } $var1 = 1; echo $var1 . "<br />"; exam($var1); echo $var1 . "<br />"; ?> ------------------

创建数组,用函数分别实现初始化、清空和逆置。自己设计函数的参数,返回值

创建一个数组, 实现函数init()初始化数组. 实现empty()清空数组. 实现reverse()函数完成数组元素的逆置. 要求:自己设计函数的参数,返回值.*/ #include<stdio.h> #include<cstdlib> void init(int* arr, int length)//没有为arr开辟空间  可以不初始化. { int i = 0; for (i = 0; i<length; i++) { arr[i] = i;// scanf_s(&qu

&lt;10&gt; 无参无返回值+ 无参有返回值函数的定义+有参无返回值函数定义+ 有参有返回值函数定义+函数的参数+函数的参数传递过程

无参无返回值: 1 #include <stdio.h> 2 3 4 /** 5 * 定义一个无参无返值函数 6 * 7 */ 8 void print_line(){ 9 10 printf("-----------------\n"); 11 12 } 13 14 15 16 int main(int argc, const char * argv[]) { 17 //调用函数 18 print_line(); 19 20 return 0; 21 } 无参有返回值函数

第10天:apply和call、bind、函数作为参数、返回值使用、闭包、递归的样例

apply和call apply和call都可以改变this的指向 函数的调用,改变this的指向 函数名字.apply(对象,[参数1,参数2,.....]) 方法名字.apply(对象,[参数1,参数2,.....]) 方法名字.call(对象,参数1,参数2,.....) 方法名字.call(对象,参数1,参数2,.....) 不同的地方:参数传递是方式不一样 只要是想使用别的对象的方法,并且希望这个方法是当前对象的,那么久可以使用apply或者call的方法改变this的指向 apply

C++笔记(3):函数的参数和返回值

刚学C++那会,做课程设计的时候总是会去网上很找别人写好的程序来参考,那时候看到函数参数列表里各种复杂的类型和奇怪的写法就头大,后来总算是慢慢搞清楚了,在此对函数各种类型的形参以及函数的返回值进行一下总结. 1.普通形参 传递普通形参也就是值传递,传递的是实际参数的一个副本,当函数被调用时,形参复制实参,也就是说此时形参和实参的值是一样的,但形参在内存中拥有自己的地址.当函数结束时形参的生命周期终止,函数内部的操作不会影响到实参的值.经典的值交换函数代码如下: void swap1(int a,

关于二维数据中的一维指针作为函数参数和返回值

问题描述: 1 假定定义了一个二维数组用来存放多条(总20条)数据,每条数据长度为10,uchar message[20][10] 2 要将外部来的一条数据存放到缓冲区指定位置(入口参数 uchar *p,数据的开始地址) 3 要从缓冲区读出一条记录,将其输出(出口参数 uchar *p,数据的开始地址). 那么该怎么写2个函数的形参/return值/返回值类型 答案: void sendbuf(uchar a[10]) { ...将a[0]~a[9]的值拷贝到指定缓冲区buf[i][0~9]

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include <cstdio> void print(int *a[3]) { printf("%d\n",a[0][0]); } int main() { int a[2][3] = {1,2,3,4,5,6}; print(a); return 0; } 编译程序时候,在第10行提示错误信息:|

如果参数varname是一个数组,则必须指定一个有效的下标,即Len函数不能确定数组中元

如果参数varname是一个数组,则必须指定一个有效的下标,即Len函数不能确定数组中元素的总数或数组占用内存的大小.(8) Len函数对Variant类型变量的处理和字符串变量一样,Len函数返回变量所存储的实际字符数,如下面的代码:Dim vVarvVar=100MsgBox Len(vVar)结果为3.(9) 由于VB本质上使用的是Unicode字符串(用两个字节的空间来存储一个字符),因此当相同的字符串变量传递给Len函数和LenB函数时会出现不同的返回值.例如,对于一个包含4个字符的字

c++函数参数类型-值,指针,引用

    以" 值传递"方式向函数传递参数 在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数.这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身. 例如: void changeValue(int originalValue,int newValue){     originalValue = newValue;   }      int main(){     int myNum=20;     changeV