[信息与通信]C基础知识

上传人:hs****ma 文档编号:458206319 上传时间:2023-08-01 格式:DOC 页数:63 大小:405KB
返回 下载 相关 举报
[信息与通信]C基础知识_第1页
第1页 / 共63页
[信息与通信]C基础知识_第2页
第2页 / 共63页
[信息与通信]C基础知识_第3页
第3页 / 共63页
[信息与通信]C基础知识_第4页
第4页 / 共63页
[信息与通信]C基础知识_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《[信息与通信]C基础知识》由会员分享,可在线阅读,更多相关《[信息与通信]C基础知识(63页珍藏版)》请在金锄头文库上搜索。

1、第一章面向对象及C+基础知识课程内容: 1、面向对象程序设计基础知识(识记) 2、基本程序结构(综合应用) 3、类型修饰符(领会) 4、函数原型(综合应用) 5、内联函数(综合应用) 6、引用(综合应用) 7、动态内存分配(简单应用) 8、编译指令(领会) 9、改变习惯重新思考(识记)11面向对象程序设计基础知识: 程序语言:本身实际上是对一个现实问题的描述;其发展的根本问题在于如何更加接近人的自然思维。(机器汇编高级语言;面向过程面向对象)面向对象: 一种软件方法(方法学),而不仅仅限于程序设计语言,更重要的是如何看待世界。 基本思想:从现实世界中客观存在的事务(对象)出发来构造软件系统,并

2、在系统构造中尽可能运用人类的自然思维方式。 面向对象程序设计语言: 定义:机器实现的定义。 数据和操作在一起,内存块可以复制副本 对象间通过函数调用实现通信;对象的继承 关键要素: 抽象:忽略事物的非本质特性,只注意与当前目标有关的本质特征,从而找出事物的共性;把具有共同性质的事物划为一类,得到一个抽象的概念。 封装:将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。(意义:对象集中而完整的描述并对应一个具体的事物,封装的信息隐蔽作用反映了事物的相对独立性;减少“波动效应”。副作用:增加了许多只负责读写的服务。) 继承:特殊类的对象拥有其一般类的对象的全部属性与服

3、务,称作特殊类对一般类的继承。 多态:一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。(目前不要求OOPL支持) C+语言的来龙去脉:对C语言进行面向对象的扩展。一种混合型OOPL。C语言的一个超集,语法基本使用C的语法,引入了新的概念支持OO的特性12C+基本程序结构:讨论C+对C的一些改进风格:1)输入输出:cin和cout代替printf, iostream.h代替stdio.h,更加方便。2)注释:“/”的引入 3)使用const(代替无参数宏)和内联函数(代替有参数宏)代替宏定义 4)函数原型(更强的编译时刻的检查)和缺省参数(方便函数调用、减少错

4、误) 5)新的动态内存分配函数new/delete:使用上更加简单 6)新的换行符 endl内联函数inline: 1)不是用函数调用的机制,编译遇到时简单的替换而已,省去了函数调用的额外开销 2)使用宏定义的副作用:# define f (x) (x+1); 在后面使用 f(1)展开成:(x) (x+1) (1),报编译错,但容易发现参数中有表达式: # define floor(x,b) x=b?0:1, 调用:if(floor(a&0x0f,0x07) / . 展开成:if (a&0x0f0x07?0:1). ;&优先级低于,产生错误。 难发现,好解决加括号#define band(x)

5、 (x)5 & (x)10) ? (x) : 0) 下面的执行结果如何? for(int i = 4; i 11; i+) int a = i; out a = a endl t; out band(+a)= band(+a) endl; out t a = a endl; 展开后会影响到a的值(a)。这一点和函数调用不同(函数一般传值)。宏没有作用域的问题引用: 1)使引用和原来定义的变量一样无区别的操作内存的某一空间。 2)最主要用途:建立函数参数传递的引用传递方式,不必使用指针;另一个用途:返回引用的函数,用于赋值运算符的左边。 3)两种情况下引用的是临时变量:对常量(或const修饰的

6、变量)的引用;引用类型和初始化时使用的变量类型不一致。4)定义返回引用了函数时,不要返回局部变量的引用。编译指令:不是C+的一部分,提供给编译器使用 1)嵌入指令:# include / # include “filename” 2)宏定义:# define 宏名 替换正文 3)条件编译指令:# if, # else, # endif, #defined13改变习惯重新思考C+不仅仅是在语法上对C的扩展,改变的是整个程序设计的方式和思路几个掌握C+新特性的途径(目前)14辅导教材这部分内容主要是最基本的C语言和C的知识。头文件和预处理指令: # include # include “文件名.扩

7、展名”# ifndef:为了防止宏的重复定义数据和表达式:词法符号关键字:C的保留字,具有自己确定的意义;不能被重新定义为标识符。标识符:用作变量名、函数名、类型名。规则:以字母或下划线开头,后面可跟数字、下划线及大小写字母。长度限制由具体编译器决定。标点:语法要求,无实际意义。基本数据类型:基本类型:char、int、float、double、void 修饰符:signed/unsighed、short/long 常量:整常量(十进制、八进制:0开始、十六进制:0x开始)、浮点常量(double,可以强制转换为float:最后加F)、字符常量(包括C预定义的转义序列) 字符串:用双引号括起来

8、的字符序列。只用空格隔开的两个串表示一个。 枚举类型:enum 枚举标记 枚举常量,枚举常量,简单变量的说明和初始化:数据类型 变量名1,变量名2,变量名n; 存储类: 四种存储类:auto、register、static、extern 两种修饰符:const、volatile运算符及优先级赋值及运算顺序语句: 表达式语句、空语句、块语句 选择语句 循环语句 转移语句 return语句数组: 一维数组: 数组元素类型 数组名数组大小 多维数组:数组的数组指针:声明:type * name;使用:int * pointer; pointer:指针,保存一个地址 *pointer:指针指向的内容

9、pointer = &I (int I) &(*pointer),*(&var)运算:对地址的运算指针和数组:元素为指针的数组和指向数组的指针 引用:产生一个变量的别名 说明: 类型 & 引用名 引用变量 引用参数:函数参数的传递方式 返回引用的函数:将函数用于赋值的左边 void类型指针:可以指向任一类型的C+对象,避免设计指针类型匹配的错误。将void类型的指针置给其它类型的指针时,必须使用强制类型转换。指针和const关键字: const int *p; int const *p类型定义: typedef 类型名 新名(如:typedef int INTEGER)串: 以0结尾的字符数组

10、。可以声明为数组或者指针: char * str = “new string”; char str = “new string”;字符串操作函数:string.h char *strcat( char *strDestination, const char *strSource ); char *strcpy( char *strDestination, const char *strSource ); int strcmp( const char *string1, const char *string2 );第1集初次与异常处理编程相邂逅 和其它很多程序员一样,本书的主人公阿愚也是在初学C

11、+时,在C+的sample代码中与异常处理的编程方法初次邂逅的,如下: / Normal program statements.try/ Execute some code that might throw an exception.catch( CException* e )/ Handle the exception here./ e contains information about the exception.e-Delete();/ Other normal program statements瞧瞧,代码看上去显得那么整齐、干净,try block和catch block遥相呼应,

12、多有对称美呀!因此主人公初次见面后就一见钟情了。为什么要选用异常处理的编程方法?当然更为重要的是,C+中引入的异常处理的编程机制提供给程序员一种全新的、更好的编程方法和思想。在C+中明确提出trycatch异常处理编程方法的框架之前的年代,程序员是怎样编写程序的,如下:void main(int argc, char* argv)if (Call_Func1(in, param out)/ 函数调用成功,我们正常的处理if (Call_Func2(in, param out)/ 函数调用成功,我们正常的处理while(condition)/do other jobif (has error)/

13、 函数调用失败,表明程序执行过程中出现一些错误,/ 因此必须处理错误 process_error();exit();/do other jobelse/ 函数调用失败,表明程序执行过程中出现一些错误,/ 因此必须处理错误 process_error();exit();else/ 函数调用失败,同样是错误处理process_error();exit();因为程序的执行过程中总会遇到许多可预知或不可预知的错误事件,例如说,由于内存资源有限导致需要分配的内存失败了;或某个目录下本应存在的一个文件找不着了;或说不小心被零除了、内存越界了、数组越界了等等。这些错误事件存在非常大的隐患,因此程序员总需要在程序中不断加入if语句,来判断是否有异常出现,如果有,就必须要及时处理,否则可能带来意想不到的,甚至是灾难性的后果。这样一来,程序可读性差了很多,总是有许多与真正工作无关的代码,而且也给程序员增加了极大的工作负担,多数类似的处理错误的代码模块就像满山的牛屎一样遍

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号