
C编程基础教程.pdf
80页C+程序设计C+是一门面向对象的程序设计语言,语法丰富,概念全面,兼顾易用和效率,在游戏开发、网络软件、分 布 式(服务器集群)、移 动(手持)设备、嵌入式系统等领域有着广泛的应用C+是由c 语言发展而来,保留了 c 语言原有的所有优点,增加了面向对象的机制C+与 C 语言兼容,用 C 语言写的程序基本上可以不加修改地用于C+一.C+基础知识C+语言概述2.简单的C+程序实例3.C+的词法单位4.C+的数据类型5.变量和常量6.运算符和表达式7.C+语句8.算术类型转换和赋值类型转换9.求值次序与副作用10.数组与字符数组11.输入输出12.输入输出格式的控制二.基本控制结构1.算法的概念与表示方法2.分支结构-if语句3.分支结构-if语句的嵌套4.分支结构-条件运算符5.分支结构-switch语句6.循环结构-while语句7.循环结构-do-while语句8.循环结构-foi语句9.循环结构-循环的嵌套10.转向语句11.结构化程序设计思想12.常用算法的应用实例13.枚举类型14.文件操作三.函数函数的定义与调用参数传递、返回值及函数声明全局变量和局部变量函数调用机制作用域与标识符的可见性变量存储类型与标识符生命期函数的递归调用函数的重载、内联和默认参数头文件与多文件结构编译预处理四.类与对象1.类和成员函数的定义2.C+对象的创建与使用3.从面向过程到面向对象4.构造函数和析构函数5.引用与复制构造函数6.运算符重载7.友元8.静态成员9.结构五.数组与指针1.数组2.多维数组3.指针与地址4.指针与地址5.th is指针6.数组与指针的关系7.字符串和string类8.多级指针与多维数组六.模板与数据结构C+模板-函数模板C+模板-类模板与线性表常用的查找方法常用的排序方法索引查找与指针数组函数指针与指针识别七.动态内存分配1.自由存储区内存分配2.浅复制与深复制3.链表-单链表的基本算法4.链表-单链表类型模板5.链表-双向链表6.栈与队列-栈的基本操作和应用7.栈与队列-队列及其操作8.二叉树八.继承与多态1.继承与派生的概念2.派生类的构造函数与析构函数3.多重继承与派生类成员标识4.虚基类5.派生类应用讨论6.多态性与虚函数九.输入/输出流类库C+的基本流类体系输入输出的格式控制标准设备的输入/输出文件-文件的打开与关闭文件-文件的读/写文件-文件的随机访问字符串流文件与对象十.异常处理1.异常的概念和处理机制2.栈展开与异常捕获3.异常的重新抛出和catch_all4.异常与继承5.异常规范6C+标准库的异常类层次结构十一.标准模板库1 .标准模板库简介2.迭代子类3.顺序容器类4.泛型算法与函数对象5.关联容器类6.容器适配器一、C+基础知识C+语言是目前广泛使用的程序设计语言之一,因其特有的优势在计算机应用领域占有重要一席。
本章作为C+程序设计的入门章节,首先结合实例介绍C+程序的概貌;然后针对其特点,介绍C+中的基本词法单位、数据类型、相关运算、以及常量、变量、表达式、语句等基础知识,为编程做好准备;最后介绍简单的输入输出方法本章内容:1、C+语言概述C+语言是广泛使用的程序设计语言之一,因其特有的优势在计算机应用领域占有重要一席C 语言的发展 20世纪70年代初,贝尔实验室的Dennis Richie等人在B 语言基础上开发出C 语言,最初是作为UNIX的开发语言20世纪70年代末,随着微型计算机的发展,C 语言开始移植到非UNIX环境中,并逐步成为独立的程序设计语言C 语言版本很多,为了让开发出来的代码能够在多种平台上运行,1988年 ANSI(美国国家标准协会)对 C 语言进行了标准化,产生了 ANSI CoC 语言的特点 既有高级语言的结构和编程环境,又有类似于低级语言(如汇编语言)的系统资源操纵能力;目标代码的执行效率只比汇编低1020%,比其他高级语言高,适合解决有实时要求的问题;有丰富的运算符、数据类型和表达式,对程序设计有良好的适应性:支持以函数为基础结构化程序设计、多文件构成及文件独立编译,适合大型复杂程序设计;语言简洁、紧凑,使用方便、灵活,书写形式自由;代码及可执行程序的可移植性好。
C+语言的发展20世纪80年代初,继面向对象语言smalltak后,许多程序设计语言都向面向对象的方向发展C+就是以C 语言为基础而发展起来的以面向对象为主要特征的语言C+语言的特点 继承了 c 语言的优点,又扩充了数据类型,使编译系统可检查出更多类型错误;支持面向对象程序设计,通过继承、重载和多态性等特征实现了软件重用和程序自动生成;加强了一致性(Consistency)检查机制,提高了软件开发的效率和质量;完全兼容C,多数C 编写的库函数和应用程序都可为C+所用,加快了 C+和面向对象技术的推广;既支持面向对象程序设计,也支持面向过程设计,不是纯正的面向对象的语言;C+有许多版本,国内较为流行的有Microsoft公司的Visual C+2、简单的C+程序实例下面通过一个简单的程序例子来分析C+程序的基本构成及主要特点程序举例【例 1.1 一个简单的C+程序:输入两个整数,通过调用函数求两个数中的较大值include using namespace std;int max(int i,intj)/*定义 max()函数*/if(i=j)return i;else return j;int main(void)cout输入 i,j:inti.j;c in i j;的值cout最大数是:max(i,j)n;return 0;)/*定义main。
函数7显示提示信息说明变量从键盘上输入变量输出提示信息和结果上面的示例代码中,黑色字体为程序主体,深绿色字体为注释组成结构及特点C+的程序结构由注释、编译预处理指令和程序主体组成注释:注释内容不参与编译,仅供程序阅读使用,编写程序时可根据需要选取注释有两种形式:以“”开头,至所在行结尾处(换行符之前)之间的内容以“/*”开头和“*/”结尾,两者之间的内容均为注释,可占多行编译预处理:以符号“#”引出,一条指令也需在一行内写完上例中的#include命令,称为“文件包含指令”,它使得后面被包含文件成为本程序的一个组成部分,被包含文件中的代码可以直接被使用编译预处理是C+提供的组织程序的工具,有关内容在第3 章函数中介绍程序主体:一般由一个或多个函数组成,但只有一个函数是程序入口,即代码执行的起点如本例由max()和 main两个函数组成,函数main()是所有控制台程序程序的入口在传统的Windows操作系统编程中,入口由系统定义为Winmain任一函数的描述都是包括在一对“”和“”中的语句序列,每个语句以“;”结束关于函数的详细知识将在第3 章 函 数 中 介 绍C+中严格区分大小写,但不严格限制程序的书写格式,不过从可读性角度出发,程序书写应采用内缩格式,一般一个语句占一行。
执行过程 上例给出的是源程序代码,以扩展名为.cpp的文件形式保存在磁盘上,经编译、连接生成可执行程序,即扩展名为.exe的文件运行可执行程序后,显示器显示:输入i,j:若用户从键盘上输入两个整数10 20并按回车键,显示器上将显示结果:最大数是:20 这种编程方式称为“控制台编程”,即通过键盘和显示器,用文本方式对程序进行编辑、运行和调试,是最初的编程方式3、C+的词法单位本节将分为4 个小节介绍C+语言使用的字符集、关键字、标识符及标点符号C+的字符集 ASCII码字符集是计算机中的常用字符集它包括英文字母及阿拉伯数字等128个字符,存储一个ASCII码占用一个字节单元由于汉字处理的需要,又出现了汉字国标码等对应于不同语言的字符集国标码的存储占用两个字节单元为了对各类字符进行统一编码,Unicode字符集应运而生它包括了世界上多种语言的基本字符,共有65536个字符ASCII码字符集国标码字符集都是它的子集Unicode字符集对所有字符进行统一的双字节编码C+语言使用下列基本字符来构成词法单位:26 个小写字母 abcdefghijklmnopqrstuvwxyz26 个大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ10个阿拉伯数字0 1 2 3 4 5 6 7 8 9其他符号|%口 A 空格C+关 键 字关 键 字(keyword)又称保留字,是系统定义的具有特定含义的英文单词,不能另作它用。
C+区分大小写,关键字全部由小写字母组成标准C+(ISO14882)定义了 74个关键字,具体的C+编译器还会做一些增删常用关键字及分类见下表:数据类型说明符与修饰符bool char wchar_t、class、const、double、enum float、int、long、short,signed,struct、union、unsigned,void、volatile存储类型说明符auto extern、inline、register static访问说明符friend.private,protected public其它说明符asm operator、template、this typedef、virtual语句与标号break、case、catch、continue default.do else、for、goto、if、return、switchthrow、try、while运算符及逻辑值delete、false、new、sizeof、trueVC+中还有一些专用的关键字,它们都以双下划线开头:asm、based、cdecl、emit、export、far、fastcall、_ fortran _ huge、_ _ _ interrupt、_ _ _ loadds、_multipile_inheritancenear pascaK saveregs,segment、signal inheritance、self stdcall、virtuak inheritance除以上之外的一些关键字本书不作介绍,可查阅相关手册。
C+标识符标识符(Identifier,ID)是程序员定义的英文单词,用来给变量、常量、数据类型、函数等命名合法标识符由字母或下划线开始,由字母、数字、下划线组成,其有效长度为131个字符,长度超过31个字符者只识别前31个字符,VC+标识符长度为1247个字符建议使用有一定含义的英文单词或拼音序列作标识符,以提高可读性:另外,尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突例如:判断下面哪些是合法的标识符(非 标红部分之外均为合法的标示符)94Salary$amountf3.5Num_of_StudentSalary 94amountMyFilevoidSalary94标点符号C+中的标点符号包括#、(、卜、,、:、;、等标点符号的作用:有一定的语法意义例如字符和字符串常量分别用 和 引起来对语法符号起分隔作用例 如;等4、C+的数据类型C+语言是广泛使用的程序设计语言之一,因其特有的优势在计算机应用领域占有重要一席C+中 的 数 据 类 型C+中的数据类型分为两大类:基本数据类型和非基本数据类型,如 图 1.1所示整 型 血字 符 型char 基 本 数 据 关 型*型刑|双f单精精度度型型dfloouabtle布尔32 booli无 值型voidC M数 标 型 数 组 蝌 口指 针type*引 用type生非 基 本 数 宪 类 型 类 class结 构struct联 合union 枚 举enum图 1.1 C+的数据类型说明:图中“type”表示任一种非void的类型,英文为关键字或程序中的表达方式。
VC+中 各 种 基 本 数 据 类 型 的 详 细 说 明vc+中各种基本数据类型的详细说明如下表所示:类 型名 称占用字节数取 值 范 围bool布尔型true,false(signed)char有符号字符型1-1。
