zoukankan      html  css  js  c++  java
  • 天轰穿C#教程之值类型[原创]

      这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。注意区分某个类型是值类型还是引用类型,因为这种存储位置的不同会有不同的影响。

      

      例如,int是值类型,这表示下面的语句会在内存的两个地方存储值20:

      

      using System;

      

      namespace预定义类型

      

      {

      

      classProgram

      

      {

      

      staticvoid Main(string[] args)

      

      {

      

      int i = 20;

      

      int t = i;                           //将i的值赋给t

      

      Console.WriteLine("t 的值为 {0}", t);//打印出结果

      

      t = 100;                             //改变变量t的值

      

      Console.WriteLine("i 的值为 {0}", i);//改变t的值后再次打印出结果

      

      Console.ReadLine();

      

      }

      

      }

      

      }

      

      执行后的效果如图2-14

      

      图2-14

      

      小天:我明白了,因为值类型的变量是直接存储值。所以当申明变量i并赋值为20的时候,在内存中就直接开辟一片空间将20存起来。再次申明变量t的时候,将i作为值交给变量t,其实给的也是20这个值。t得到值后,也重新开了一片空间放起来。后面我们再次修改t的值的时候,其实就是将t的空间中的20扔了出来,然后放了个100进去。可是这个过程压根就影响不到i空间的值。

      

      总结下,在C#中,基本数据类型如bool和long都是值类型。如果声明一个bool变量,并给它赋予另一个bool变量的值,在内存中就会有两个bool值。如果以后修改第一个bool变量的值,第二个bool变量的值也不会改变。这些类型是通过值来复制的。

      

      本文为天轰穿原著,转载请注明出处及作者!

  • 相关阅读:
    R语言统计词频 画词云
    Bootstrap抽样(自展法)
    基于adt-bundle-windows-x86的android开发环境搭建
    逆分布函数法生成随机数(指数分布) R语言实现
    2016-ccf-data-mining-competition 搜狗用户画像构建
    算法第四版 在Linux 中调用Algs4库
    解决Ubuntu Chrome浏览器很卡不响应的问题
    Linux下安装系统清理软件 BleachBit 1.4
    C语言编程-9_4 字符统计
    C++调用Matlab函数求特征值
  • 原文地址:https://www.cnblogs.com/thcjp/p/2733351.html
Copyright © 2011-2022 走看看