网站大量收购独家精品文档,联系QQ:2885784924

第2章C程序设计基础综述.pptx

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 C#程序设计基础 ;2.1 标识符 ;2.2 C#中数据类型; 值类型的变量内含变量值本身,C#的值类型可以分为简单类型、结构类型和枚举类型。;1. 整数类型;2. 实数类型;3 字符类型;4. 布尔类型 布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。 ;5. 简单类型对应的.NET Framework系统类型别名;  引用类型也称为参考类型。和值类型相比,引用类型的变量不直接存储所包含的值,而是指向它所要存储的值。类似C中的指针。 ;1. object类 object是C#中所有类型(包括所有的值类型和引用类型)的基类,C#中的所有类型都直接或间接地从object类中继承而来。因此,对一个object的变量可以赋予任何类型的值。 float f=1.23; object obj1; //定义obj1对象 obj1=f; object obj2=China; //定义obj2对象并赋初值; C#还定义了一个string类,表示一个Unicode字符序列,专门用于对字符串的操作。 同样,这个类也是在.NET Framework的命名空间System中定义的,是类System.String的别名。  ;  字符串在实际中应用非常广泛,利用string类中封装的各种内部操作,可以很容易完成对字符串处理。例如: string str1=123+abc; //+运算符用于连接字符串 char c=Hello World![2]; //[]运算符可以访问string中的单个字符,c=e string str2=China; string str3=@China; // 字符串的另一种表示形式,用@引起来。 bool b=(str2==str3); //==运算符用于两个字符串比较,b=true;1. 变量定义 在C#程序里使用某个变量之前,必须要告诉编译器它是一个什么样的变量,因此要对变量进行定义。定义变量的方法如下: [访问修饰符] 数据类型 变量名 [= 初始值];;例如: string name=王华; int age=20; 也可以同时声明一个或多个给定类型的变量,例如: int a=1,b=2,c=3;; 定义一个变量,系统就会在内存中开辟相应大小的空间来存放数据。可以从下面4个层面来理解变量。;2.3.2 值类型变量和引用类型变量的区别;1. 栈空间和堆空间;进栈和出栈操作; 堆空间是一块内存空间,在堆空间中可以分配大块的内存以存储某类型的数据对象。 与栈不同,堆里的空间能够以任意顺序存入和移除。;如图2.5所示表示一个程序在一个堆里存放了3个数据。;2. 理解值类型的变量;例如: int x; int y=2; x=y;; 在C/C++语言中可以定义指针变量,例如:   char *p;   其中,p是一个指针变量,其中存放某个字符变量的地址,注意变量p和它所指向的字符变量是两个不同的东西。   在C#中没有指针,而改为引用,引用表示某个对象的地址而不是变量或对象本身。;  在C#中,无论值类型变量还是引用类型变量,都是在栈空间中分配对应的存储空间,所不同的是,引用类型变量所指向的对象是在托管堆上分配内存空间的,为什么这样呢?  ;  void fun()   { char *p; //定义指针变量p int i; //定义整型变量i p=(char *)malloc(11*sizeof(char)); //为p分配11个字符的空间 for (i=0;i10;i++) //为10个字符单元分别赋值a~j   *(p+i)=a+i; *(p+i)=’\0’; printf(%s\n,p); //输出:abcdefghij   };  .NET Framework改进了这一点:   将C#应用程序的执行置于CLR的监控之下,而且所有引用类型变量所指向的对象(其生命周期是全局性的)都在托管堆上分配空间,程序执行完毕,由CLR将堆空间全部回收,这样就不会出现像前面C/C++程序出现的内存泄漏问题了。;  所以在C#中,当定义一个引用类型变量时,系统在栈空间中为该引用变量分配存储空间,要想创建对象并把对象的存储地址赋给该变量,就需要使用new操作符。例如:   MyClass var; //MyClass是已定义的类或类型   var=new MyClass(); //创建var引用的实例 ,new 

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档