C#知识点-04 (数组、冒泡排序、值类型贺引用类型、方法)

数组

使用数组的目的:需要一次性声明或者存储多个相同类型的数据。
int[] scores = new int[5];
1、当我们写了上面这样一行创建数组的代码之后,我们在内存的堆中,开辟了【连续】的5块空间,每块空间,都默认给了一个初值【0】
2、我们开辟的连续的5个空间,每块空间,我们称之为数组的【元素】
3、开辟的连续的5个空间,每个空间,在内存中仍有内存地址,但是内存地址是没有规律的表达方式,不便于程序员使用或者记忆。所以我们给5个空间,每个空间起了一个别名:【索引】或者【下标】,表达方式为:数组名【索引】,数组中数据的一个编号。例:score[4]
4、数组的下标都是从0开始,最大的下标是数组的长度减一

冒泡排序

for(int i = 0; i<nums.Length-1; i++)//外层i循环用来控制比较的躺数
{
      for(int j = 0; j<nums.Length-1-i; j++)//内层j循环用来控制交换的次数。 为什么要“-i”呢,因为“-i”能提高冒泡的效率,比较过的数字就不用再比较了
      {
            if(nums[j]>nums[j+1])
            {
                int temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
            }
      }
}

a、为什么i循环的长度是Length-1呢?
        因为假设五个数两两作比较,最后从小到大依次排列。比如是{5,4,3,2,1} 先拿5和其他四个数依次比较,变成{4,3,2,1,5};再拿4依次比较变成{3,2,1,4,5};再拿3依次比较变成{2,1,3,4,5};再拿2依次比较变成{1,2,3,4,5}。你会发现,1不需要主动地与任何数进行比较结果就出来了
b、为什么j循环的长度是Length-1-i呢?
        因为j循环里的长度是交换的次数。比如拿5和其他数作比较的时候总共交换了四次,而越往后交换的次数越少(因为在5的比较次数中5已经确定了是最大的数,后面不需要跟5比较,依此类推)。其实关于减不减“i”都不会影响结果,但是减“i”的话能提高程序运行的效率

值类型和引用类型

值类型:传递的是值本身,存储到栈中。(int、double、char、bool)
引用类型:传递的是地址,存储到堆中。(数组、类、接口、委托)注意:string是特殊的引用类型,因为他有不可变性

方法

分类:静态方法、非静态方法(实例方法)
语法:【访问修饰符】  static/非静态不用写 返回值类型 方法名(【参数列表】)
           {
                       方法体;
           }
1、【】中的内容是可以忽略的
2、访问修饰符:设置成员的访问权限 public最大 private最小
3、static:静态方法
4、返回值类型:方法执行完成之后,返回给调用者的结果的数据类型。没有返回值的话标记为void
5、参数:完成一个方法,所必须提供的条件
6、方法名必须要符合Pascal命名规范,即每个单词的首字母都要大写,其余每个字母小写,并且方法名要求尽量为动词。
7、return 作用1:在方法中,返回要返回的值 作用2:立即结束本次方法
8、方法的调用
        a、你写的方法,跟Main方法,在同一个类中Program类 调用方式:方法名(【参数】)
        b、你写的方法,跟Main方法,不在同一个类中 调用法师:类名.方法名(【参数】)
9、方法的实参和形参
        实参:实参是在调用函数或方法时传递给形参的具体值。是实际传递给函数的数据。
        形参:形参是函数或方法定义中声明的变量,用于接收传递给函数的值。
        a、实参的个数和类型,跟形参的个数和类型必须一样。但是你自己起的实参和形参的名字可以不一样
        b、实参和形参都会在内存中开辟空间
10、方法的重载:方法的名称相同、但是方法的参数不同
                参数不同包含:a、参数的类型不同
                                         b、参数的个数不同
        方法的重载和返回值没有任何关系,只跟参数的个数和类型有关
11、out参数:a、当我们的程序需要返回多个值,并且返回的值的类型还不一样的时候,使用out参数
                        b、out参数在方法的内部,必须要赋值
                        c、调用的时候,out参数必须继续使用out关键字标记,表示的是方法内部多余返回出来的值
                        d、out参数,在方法的内部必须赋值。但是在方法的外部,可以不赋值
12、ref参数: a、把值传递,变成了引用传递。传递的是地址
                        b、调用的时候,也必须使用ref关键字标记

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值