c语言基础知识大全官网,C语言基础知识全集

41528d3028836879cd698677c3999917.gifC语言基础知识全集

第1章 C++语言基础 nC++是一种以C语言为基础开发的高级语 言,一般认为C是C++的一个子集或基础 语言,但二者又是完全独立的。 nC++适合大型程序的开发与设计 nC则适合于更底层的项目开发 1.1 C++语言概述 1.1.1 标准C++ nC++发明者:Bell实验室Bjarne Stroustrup 博士 nC++第一定义:“带类的C” ¨C++保留了C作为一个子集 ¨C++从Simula语言引入了类的概念,包括派生 类和虚函数;借鉴了Algol语言的运算符重载等 特性。 1.1.1 标准C++(续) n起初,C++编译系统只是一个预编译系统。 n1988年,出现一个真正的C++编译系统。 n1998年,ISO/ANSI C++标准正式通过并发 布。 n总体上,C++是一种混合语言,是集过程化 设计、面向对象、基于对象和泛型算法等 多种技术于一体的编程语言。 n学习C++最重要的是集中关注概念,不要迷 失在语言的技术细节中。 1.1.2 C++语言的简单程序 #include using namespace std; int main( ) { int x = 10, y = 20; int z = x+y; cout //头文件包含 using namespace std; //名字空间声明 ¨可以将一个名字空间理解成包含若干定义的一 个区域的名字。 ¨标准C++所有定义都属于名字空间std。 1.1.2 C++语言的简单程序(续) n3 注释 nC++的“块注释”:/*和*/为分界符号 ,与C中的用法一致。 nC++的“行注释”:以//符号开始到一行 的结束。 n使用注释符时的注意事项: ¨标志符‘/’和‘*’,‘/’和‘/’之间不可 以分开。 ¨注释符对“/*”和“*/”不可以嵌套。 ¨注释符//之后的注释结束于本行。 ¨//和/*与*/可以嵌套使用。 1.1.2 C++语言的简单程序(续) n思考题:下列程序是否正确? #include using namespace std; int main() { /*下面程序将在终端上输出/*你好*/的字样 */ cout ”告诉C++编译器,将文件 iostream内容插到此程序中。 niostream中定义了一组标准类输入输出流(I/O stream)类。 n流——八位的字节序列。 ncout是标准输出流类的一个预定义的对象,代表 控制台输出设备(console out)如:显示器。 ncin是cout的反义词,控制台输入,如键盘。 1.1.2 C++语言的简单程序(续) ncin与cout说明 ¨用来取代scanf和printf,更安全、更方便。 1 格式控制符与输出数据的类型不一致 2 scanf()的第二个参数应是一个指针参数,以上错误C编 译器不能检查出来。 #include void main() { int i; float f; scanf(“%f”,i); printf(“%d”,f); } #include using namespace std; void main() { int i; float f; cini; cout”在C++中仍保持C中“右移”功能 ,但用于输入时扩充了其功能,表示将从标准输 入流(键盘)读取的数值传送给右方指定的变量。 如:cinx; //键盘输入的数据自动转换为变量X 的类型,并存入变量X内。 n可以连续输,如cinabc;不用顾忌类型。 它按书写顺序从键盘上提取所要求的数据,并存 入对应的变量中。 n用cin输入时,要注意使用间隔符 (空格、回车 、Tab键)。 1.1.2 C++语言的简单程序(续) §cout中运算符“ using namespace std; void main() { int x=25; couthexx‘’decx‘’octx‘\n’; } 输出结果:19 25 31 1.1.2 C++语言的简单程序(续) n5 灵活的局部变量声明 下面局部变量声明是否正确?为什么? f ( ) { int i; i=10; int j; j=25; //… } 1.1.2 C++语言的简单程序(续) n6 编码习惯 ¨尽量保持好的书写风格是必须养成的习惯。 ¨要注意程序的书写格式,如缩进格式和成对符 号的对齐排列等。 1.2 面向对象的程序设计思想 nC向C++过渡的实质是由过程化程序设计 思想向面向对象程序设计的思想的转变。 程序设计语言的发展 硬件发展——软件危机——结构化程序设计 ——软件工程——面向对象技术 机器码——低级——高级; 1.2.1 过程化的程序设计 n面向过程编程 ¨它是早期的程序设计范型,它考察整个设计过 程,以功能分解为中心。 n面向过程的特征 ¨早期程序设计者认为: 程序 = 数据结构 + 算法 这个公式贯穿于整个程序设计的始终,无论程 序是系统程序还是模块程序。 1.2.1 过程化的程序设计(续) n过程化的问题处理思路形成了一套有效的 程序设计方法,称为结构化方法。 ¨程序设计采用自顶向下,逐步细分的方法展开 。 ¨模块化 ¨使用三种基本控制结构:顺序、选择、循环。 n三种结构的共同点:每种结构只有一个入口和一个 出口。 1.2.1 过程化的程序设计(续) n过程化方法应用举例: int main( ) { 开始函数(); 绘制画面函数(初始棋局); 重复下述步骤 { 走棋函数(黑子); 如果(判断输赢(棋局)==已定出输赢)停止重复 ; 走棋函数(白子); 绘制画面函数(棋局); 如果(判断输赢(棋局)==已定出输赢)停止重复; } 输出结果函数(棋局); 结束函数(); } 1.2.1 过程化的程序设计(续) n面向过程的不足 ¨强调功能分解,为了实现功能,有时数据结 构屈从于算法,结果造成数据结构和过程的 分离。 n由于过程化设计中的数据与过程是相互独立的 ,一个过程完全可以作用到并不相关的数据上 ,也不能保证对数据操作的合理性,数据对于 算法完全是被动的。 n此种操作是一种“谓语+宾语”结构。 ¨对于庞大、复杂的程序难以开发和维护 1.2.2 面向对象的程序设计 n面向对象编程 ¨是一种以对象为中心的程序设计范型。也可以 说是一套概念和想法,它与面向过程程序设计 相对应,是一种用计算机程序来描述实际问题 的思路。 n面向对象的特征 ¨OO(Object-Oriented)程序设计者认为: 程序 = 对象 + 消息 这个公式表明面向对象的程序以对象为程序组 成单位,以消息为动力(驱动)。 1.2.2 面向对象的程序设计(续) n面向对象方法应用举例: int main() { 定义对象,包括黑棋选手,白棋选手,裁判,组织者; 裁判确定比赛开始(); 组织者绘制画面(); 重复下述步骤 { 黑棋选手.走棋(); 如果(裁判.判断输赢()==已定出输赢)停止重复; 白棋选手.走棋(); 组织者.绘制画面(); 如果(裁判.判断输赢()==已定出输赢)停止重复; } 组织者.输出结果(); 裁判.确定比赛结束(); } 1.2.2 面向对象的程序设计(续) n面向对象的好处 ¨以对象为单位组织程序,更接近人思维方式, O

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值