C#中int类型解析

第一部分:int类型的介绍:
//定义一个int类型变量
int num=1;


对于上述式子,int类型就是System.Int32的别名,而Int32为结构类型,具体的定义如下(只取了部分内容)

namespace System
{
    public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
    {
        public const int MaxValue = 2147483647;
        public const int MinValue = -2147483648;
        public int CompareTo(int value);
        public bool Equals(int obj);
        public override int GetHashCode();
        public static int Parse(string s);
        public override string ToString();      
        public static bool TryParse(string s, out int result);
    }
}

 

一,可见,int为System命名空间下的一个结构类型,它含有一些静态成员与非静态成员,对于静态成员可通过结构名.静态成员名直接调用(比如:int.Parse(s))

       对于非静态成员通过结构的变量名.非静态成员名(比如:int num=1;num.ToString())。

二,Int32结构表示 32 位有符号的整数。即Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数。

三,int所占字节数:个人始终对int占多少个字节不清楚 , 网上没有很清晰的答案,有人说跟系统有关,有说跟编译器有关,有说跟cpu有关......

       目前我理解的是 在32位计算机下,C#程序中,int 占4个字节,即32位,通过sizeof(int)观察可得4字节,不再深究,以后再说~

 第二部分:int类型的初始化过程

 首先请记住:在 C# 中不允许使用未初始化的变量。(在使用 C# 中的局部变量之前,必须对其进行初始化。)(可以理解为不允许使用没有被分配内存空间的变量)详见:http://msdn.microsoft.com/zh-cn/library/vstudio/83fhsxwc.aspx

//int类型初始化方法一
int a=new int();//在栈中开辟了内存空间,调用构造函数进行初始化a,则a的初始值为0
int b=a; //a可以直接拿来操作,因为a已经被赋值(即a已经初始化(初始化就是赋值,声明只是声明一个变量名称)了),b的值为0
上面的式子显示了由默认构造函数返回的值类型的默认值,默认构造函数是通过 new 运算符来调用的,即调用了Int32结构的默认无参构造函数(构造函数系统没写出来,但确实是存在的,每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值(详见:http://msdn.microsoft.com/zh-cn/library/vstudio/s1ax56ch.aspx)。 具体如何赋值还待研究...),将a的值赋值为0。
//int类型初始化方法二
int a=0;//当然这个a肯定可以直接拿来用,这种方法与方法一效果相同,a的初始值为0。
//int类型初始化方法三
int a;//(此时到底有没有在栈中开辟内存空间?)编译时a的初始值为0..但是却不能将a直接拿来操作,因为a其实没有初始化,详见http://msdn.microsoft.com/zh-cn/library/vstudio/s1ax56ch.aspx(看上去就没有初始化,因为你没给它赋任何值啊)--这里就涉及编译时与运行时的概念--还待了解..
a=0;//此时a肯定在栈中开辟了内存空间,并赋初值为0。
//int类型初始化方法四
int a; //与方法三等效
a=new int();//其实等效于a=0;
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值