标签:struct 定义 模板 计算 一个 相关 ++ 运行时 值类型
C程序是一组函数和数据类型
C++程序是一组函数和类
C#程序是一组类型声明
可以把类型想象成一个用来创建数据结构的模板。模板本身不是数据结构,但它说明了由该模板构造的对象的特征。
类型由下面的元素定义:
例:short类型和int类型
从类型模板创建实际对象,称为实例化类型
C#提供16种预定义类型,包括13种简单类型和3种非简单类型
所有的预定义类型都直接映射到底层的.NET类型。C#类型名称就是.NET类型的别名,
所以可以使用.NET类型名称替代C#类型名,但不鼓励这样做。
用户可以自定义6种类型
类型通过类型声明创建,类型声明包含以下信息
程序运行时,他的数据必须存储在内存中。一个数据需要多大内存,存储在什么地方,以及如何存储都依赖于该数据项的类型。
运行中程序使用两个内存区域来存储数据:栈和堆
栈是一个LIFO(Last-In First-Out,后进先出)的内存数组。
栈存储以下几种类型数据
栈的特征
在堆里可以分配大块内存来存储某类型的数据对象。
与栈不同,堆里的内存能以任意顺序存入或移除。
CLR的GC(Garbage Collector,垃圾收集器)自动删除堆上不再访问的数据。
如果数据是另一个对象的成员,那么它的存储会有些不同
对于一个引用类型,其实例的数据部分始终存放在堆里
变量允许程序存取数据
每个变量都有变量类型,这样编译器就可以确定运行时需要的内存总量以及哪些部分应该存在栈上,哪些存在堆上。
变量类型在编译时就确定且不能在运行时修改,这叫静态类型。
dynamic代表一个特定的、实际的C#类型,它知道如何在运行时解析自身。
某些情况下,特别是使用数据库时,你希望表示变量目前未保存有效的值(数据库中的null)。
对于引用类型,你可以直接把变量设置为null,但值类型不行。
可空类型允许创建可以标记为有效或无效的值类型
int? i =10; double? d1 =3.14; bool? flag =null; char? letter =‘a‘; int?[] arr =newint?[10];
标签:struct 定义 模板 计算 一个 相关 ++ 运行时 值类型
原文地址:https://www.cnblogs.com/GarfieldEr007/p/10126545.html