zoukankan      html  css  js  c++  java
  • c#学习基础(2)存储、值类型和引用类型、变量

    程序运行时,它的数据必须存储在内存中,数据项需要多大的内存、存储在什么地方以及如何存储都依赖该数据项的类型

    运行中的程序使用两个区域来存储数据:栈和堆

    栈是一个内存数组,是一个LIFO(last in first out后进先出)的数据结构

    栈存储几种类型的数据:

    某些类型变量的值

    程序当前执行环境

    传递给方法的参数

    栈有以下几大特征

    数据只能从栈的顶端插入和删除

    把数据放到栈顶端称为入栈push

    从栈顶删除数据称为出栈pop

    堆是一块内存区域,在队里可以分配大块的内存用于存储某类型的数据。

    与栈的不同,堆里的内存可以任意顺序存入和删除

    程序可以在堆里保存数据,但并不能显示的删除她们,CLR的自动GC(GarbageCollector垃圾收集器)判断程序的代码将不会再访问某数据项时,自动清除无主的堆对象

    ---------值类型(数据存放栈中)和引用类型(引用存放在栈中-------指向数据堆中存放位置:数据存放堆中)

    数据项的类型定义了存储数据需要的内存大小、组成该类型的数据成员以及该类型能执行的函数。还决定了对象在内存中的存储位置——栈和堆

    类型被分两种:值类型和引用类型,两种类型的对象在内存中的存储方式不同

    值类型只需要一段丹顿的内存,用于存储实际的数据

    引用类型需要两段内存:

    第一段存储实际的数据,它总是位于堆中

    第二段是引用,指向数据在堆中的存放位置

    存储引用类型对象的成员

    引用类型对象的数据部分始终存放在堆里

    值类型对象,或引用类型数据的引用部分可以存放在堆里,也可以存放在栈里,这依赖实际环境

    要记得:对于一个引用类型,其实例的数据部分始终存放在堆里

    ----------------------------------------------------变量

    一种多用途的编程语言必须允许程序存放数据,而这正是通过变量实现

    变量是一个名称,表示程序执行时存储在内存的数据

    c#提供了4中变量

    名称   类型的成员 描述
    本地变量  否(临时) 在方法的作用域保存临时数据
    字段 是(保存) 保存和类型相关的数据
    参数 否(传递) 用于从一个方法到另一个方法传递数据的临时变量
    数组元素 是(保存) 用于保存临时的或类型相关的数据

     

    变量声明

    在使用之前必须声明 

    变量声明定义了变量,并完成了两件事:

    给变量命名,并未他关联一种类型;

    让编译器为它分配一块内存

    一个简单变量类型声明至少需要一个类型和一个名称(如:int(类型) var1(名称))

    在声明一个变量的同时要初始化(一些类型如果在声明时没有初始化,那么会被自动设为默认值(如:int默认值为0))

    变量也可以多重声明(int var1=12,var3 var 2=5;)

    变量名代表变量保存的值,可以通过使用变量名来使用值(Console.Writeline(“{0}”,var2))

    ------------------------------类

    程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,称之为类。

    类是一个能存储数据并执行代码的数据结构,它包含以下的内容

    数据成员,它存储与类或类相关的数据。数据成员通常摸你该类所表示的现实世界事物的特性。

    函数成员,它执行代码。函数成员通常模拟类所表示的现实事物的功能和操作

    一个c#类中可以包含任意数据的数据成员和函数成员

    成员可以是9种可能的成员类型的任意组合

    数据成员                                                       函数成员——执行代码

    字段                                                                方法 属性 构造函数 析构函数 运算符 索引 事件

    常量

    类是逻辑相关的数据和函数的封装,通常代表真实世界中的或概念上的事物

    一个运行中的c#程序的一组相互作用的类型对象,它们中的大部分的类的实例

    如果想使用类,就必须定义新类的特征和成员

    类的名称

    类的成员

    类的特征

  • 相关阅读:
    HDU 5642 King's Order 动态规划
    HDU 5640 King's Cake GCD
    HDU 5641 King's Phone 模拟
    HDU 5299 Circles Game 博弈论 暴力
    HDU 5294 Tricks Device 网络流 最短路
    HDU 5289 Assignment rmq
    HDU 5288 OO’s Sequence 水题
    星际争霸 虚空之遗 人族5BB 操作流程
    Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
    Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
  • 原文地址:https://www.cnblogs.com/shapaozi/p/7072173.html
Copyright © 2011-2022 走看看