Day2 01 引用类型和值类型
值类型:值类型变量,存储的是对象的值。给其赋值,会创建值的副本,修改任何一个副本,不会影响其他副本。
int x = 5;
int y = x; //创建一个x的副本y x把其自身的值传送给了y 也就是5
int z = x; //创建一个x的副本z
y ++;
z++;
得到的结果应该是:x = 5;y = 6; z = 6;
引用类型:引用类型变量,存储对象的内存地址,赋值不会创建值的副本,只会创建地址的副本,修改任何一个副本,也同时修改其他的副namespace 引用类型和值类型
说白了,这东西就跟电脑复制粘贴和创建快捷方式类似。你把D盘的av拷贝到了桌面,然后看,这过程中,你删了,或者怎么了,不影响D盘里的源文件。如果你把快捷方式发送到了桌面,改了,就直接把源文件改了。
值类型,开辟了新的内存空间,空间里存的是值。int i ,int j ,int k都有自己的内存空间,里面存的都是自己的值,改了也互不影响。
引用类型,就是人家把自己的内存地址给你了,你改,就把人家的值改了。
例子:
{
      class Program
      {
            static void Main(string[] args)
            {
                  int[] arrayDarwen = new int[] { 1, 2, 3, 4, 5, 6, 7 };  //定义一个int类型的数组arrayDarwen
                  int[] arrayDarwen1 = arrayDarwen;                       //注意:没有用new关键字   把arrayDarwen的地址 给了arrayDarwen1 相当于把arrayDarwen的                              门牌号给了它。类似指针。
                  for (int i = 0; i < arrayDarwen.Length; i++)            //改变arrayDarwen的值
                  {
                        arrayDarwen1[i] += 1; 
                  }
                  ShowArray(arrayDarwen);                                  //发现  arrayDarwen的值也变化了
                  Console.WriteLine();
                  ShowArray(arrayDarwen1);
                  Console.ReadKey();
              }
      public static void ShowArray(int[] j)
              {
                    for (int i = 0; i < j.Length; i++)
			        {
                          Console.Write(j[i]+",");
			        }
              }
        }
}
Day2 01 引用类型和值类型的更多相关文章
- C# 引用类型和值类型
		C# 引用类型和值类型 CLR支持两种类型:引用类型和值类型. 1.引用类型 (1)内存必须从托管堆上分配: (2)堆上分配的每个对象都有一些额外成员(包括“类型对象指针”,“同步块索引”),这些成员 ... 
- NET基础(4):引用类型和值类型
		CLR支持两种类型:引用类型和值类型.虽然FCL的大多数类型都是引用类型,但程序员用的最多的还是引用类型,引用类型总是从托管堆分配,c#的new操作符返回对象内存地址-即指向对象数据的内存地址.使用引 ... 
- 《CLR via C#》读书笔记--基元类型、引用类型和值类型
		编程语言的基元类型 编译器直接支持的数据类型称为基元类型.基元类型直接映射到Framework类库中存在的类型.例如:C#中的int直接映射到System.Int32类型.下表给出了C#基元类型与对应 ... 
- CLR via C#(02)-基元类型、引用类型、值类型
		http://www.cnblogs.com/qq0827/p/3281150.html 一. 基元类型 编译器能够直接支持的数据类型叫做基元类型.例如int, string等.基元类型和.NET框架 ... 
- 《CLR via C#》读书笔记(5)基元类型、引用类型和值类型
		5.1 基元类型 编译器直接支持的数据类型称为基元类型(primitive type). 以下4行到吗生成完全相同的IL int a = 0; //最方便的语法 System.Int32 b = 0; ... 
- 【CLR Via C#】第5章 基元类型、引用类型、值类型
		第二遍看这本书,决定记录一下加深印象. 1,基元类型 什么事基元类型?基元类型是直接映射到FrameWork类库(FCL)中存在的类型,编译器直接支持的数据类型.比如int直接映射到System.In ... 
- CLR via C#深解笔记三 - 基元类型、引用类型和值类型 | 类型和成员基础 | 常量和字段
		编程语言的基元类型 某些数据类型如此常用,以至于许多编译器允许代码以简化的语法来操纵它们. System.Int32 a = new System.Int32(); // a = 0 a = 1 ... 
- 【C#进阶系列】05 基元类型、引用类型和值类型
		基元类型和FCL类型 FCL类型就是指Int32这种类型,这是CLR支持的类型. 而基元类型就是指int这种类型,这是C#编译器支持的,实际上在编译后,还是会被转为Int32类型. 而且学过C的朋友 ... 
- 实际举例C#引用类型和值类型的区别<网摘>
		我们都知道,c#的两大数据类型分别为值类型和引用类型.很多人或许闭着眼睛都能说出值类型包括简单类型.结构体类型和枚举类型,引用类型包括自定义类.数组.接口.委托等,但是当被问及到二者之间的联系和区别, ... 
随机推荐
- [19/10/16-星期四] Python中的文件操作
			一.打开文件 # open(file, mode='r', buffering=-1, encoding_=None, errors=None, newline=None, closefd=True, ... 
- JExcel - 学习总结(1)
			1.什么是JExcel JExcel是Java对Excel进行操作的包,可以实现创建一个Excel并写入或读取Excel的数据等操作: JExcel的主要类为: (1)Workbook:工作簿 (2) ... 
- Java文件手动编译执行步骤
			Java编译执行步骤: 1)将 Java 代码编写到扩展名为 .java 的文件中.2)通过 javac 命令对该 java 文件进行编译.3)通过 java 命令对生成的 class 文件进行运行. ... 
- SVN与Git的优点差异比较
			今天自己还是很有进步的,但是 下午的进度很慢,学习还是得回去,不能在工位进行 在网上看到一篇有关于SVN与Git的区别 复制下来了,以后可以经常看看 一. 集中式vs分布式 1. Subversion ... 
- HNUSTOJ 1604:Operations
			1604: Operations 时间限制: 2 Sec 内存限制: 128 MB 提交: 313 解决: 97 [提交][状态][讨论版] 题目描述 You can perform the fo ... 
- Spring的底层实现机制
			Spring的底层实现机制是通过Demo4j+java反射机制实现的. 使用demo4j来解析xml,使用反射机制实例化bean. 
- 【学习总结】快速上手Linux玩转典型应用-第1章-课程介绍
			课程目录链接 快速上手Linux玩转典型应用-目录 1. Linux有什么用 2. 课程安排 3. 课程收获 基本运维能力,等等 END 
- Linux系统安装使用实录--传送门(持续更新)
			1.安装Linux系统 经过两种系统对比,发现ubuntu的资源依赖更方便更全, centos安装时可以配置开发环境,默认有安装的jdk,这一点比Ubuntu方便一点. win10+centos ... 
- 35C3 CTF - Web - php
			参考链接 https://ctftime.org/task/7404 题目描述 PHP's unserialization mechanism can be exceptional. 解题流程 程序代 ... 
- 可持久化+Trie || BZOJ 3261最大异或和 || Luogu P4735 最大异或和
			题面:最大异或和 代码: #include<cstdio> #include<cstring> #include<iostream> using namespace ... 
