C#基础学习[2]--从菜鸟到黑客大神

  第二章     数据类型

       讲到数据类型不得不又开始讲CPU,而且必须得提一提电脑的三大件(CPU,内存,硬盘)。CPU的工作已经说过了,1计算,2协调。那么内存和硬盘又是干什么的呢,硬盘--存储数据的,各种各样的“高清大片”都存在里面了。那么内存是用来干什么的呢,OK。内存也是用来存储数据的。那么为什么搞2个存数据的呢。其实是因为他们存储数据的方式有很大的区别。1内存的访问速度特别快,2断电内存的数据就消失了。所以内存只适合临时的存储数据。

        那么说说工作原理吧,首先程序是存在硬盘上的,我们CPU运行程序时会将在硬盘上的程序copy到内存里,然后CPU在对内存进行操作。为什么呢,因为内存的访问速度特别特别快。

        说数据类型,我们必须先说变量。比如 int a=1 --a就是一个int类型的变量。注意我的语法,那么a就是一个数据类型为int的变量。a--变量,int数据类型。大概是这样吧。但是这不是完全准确的说法。那么我们从头开始来说一遍。

         我们声明一个int类型的变量a,那么我们就是在内存中开辟了一块大小为int的空间。这个时候我们知道了,原来数据类型就是一块在内存里面的空间,也不是很高端吗,但为什么不干脆就叫空间而叫他为int呢,因为微软帮我们想到了我们有许多经常用的大小的空间,直接就把这个空间大小起了个别名,string,int,float,long,short这些都是微软帮我们提供的。那么既然数据类型就是一块内存的空间,那么a又起什么作用呢。因为内存是很大的,我们声明了这个空间之后我们不知道这个空间在哪,那么我们怎么找到他呢,这个时候a就是这块空间的别名,也可以理解为a就是这个空间的住址的代号。int a=1,呢,就是开辟的这个int大小的空间住在a这个地方里面住的人的名字(值,value)就是1.

        当然数据类型肯定是没有这么简单的。我们继续说内存,内存里面主要有两块地方,一块叫堆、一块叫栈。我们声明的int a=1,这个东东就是在栈里的某块地方存在着的。那么堆是干什么的呢?我们继续声明一个int[] b=new int[2],这次我们同样在栈里面声明了一个叫b的int[]类型的空间,这个空间比较特别,他里面的住户,也就是他的值是存在堆里的,在栈里面存储的只是一个他真正值的地址而已,这个地址指明的是在堆里面的一个地方。

               知道了这些我们再来了解值类型和引用类型。int是值类型,int[]是引用类型。区别我们这么说吧,小明代表int类型,他找他爸爸要钱,他爸爸复制出一张100元的钞票给他,他把100快用了对他爸爸没有任何影响。--int a1=1;          int a2=a1; a2=2;那么a1还是=1;a1就是小明的爸爸,a2就是小明。

                        下面我们说引用类型,老王是int[],老王和她老婆一起开了一个联名户头,以前有100快,他老婆花了50账户还剩50.那么老王这时也只剩50了。

            int[] arr1=new arr[2];int[] arr2=new arr[2]; arr1[1]=1;arr2[1]=arr1[1];arr2[1]=2;那么arr1[1]也等于2了。根本原因是arr1和arr2公用同一个堆里的地址。

        说了这么多居然忘记了数据类型的转换,有3种转换强转(int),字符串转换parse(),和converte转换 后面两个和相似,可以用反编译看看他们的区别。还有就是隐式转换和强转是对应的!~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值