没有合适的资源?快使用搜索试试~ 我知道了~
c++入门经典.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 178 浏览量
2021-12-16
11:33:29
上传
评论
收藏 120KB DOCX 举报
温馨提示
试读
21页
c++入门经典.docx
资源详情
资源评论
资源推荐
第1章 根本概念
1.1 编程语言
读者可能很生疏编程和编程语言的根本概念,下面从普遍的意义上简要描述一下本书将用到的
一些术语,并阐述C++与其他编程语言的关系。
目前有很多编程语言,每一种语言都有其优缺点,都有其吹捧者和批判者。除了C++之外,
读者肯定还听说过Java、BASIC(Beginner’s
A-plulrpose
Symbolic
Instruction
Code的首字母缩
写 ) 、 COBOL(Common Business-Oriented Language的 首 字 母 缩 写 ) 、 FORTRAN(formula
translator的前几个字母缩写)、PASCAL(以一位法国数学家Blaise Pascal命名)和C(只是由于它
是B语言的后续语言)等编程语言。全部这些统称为高级语言,由于它们可以比较简洁地表达 出
要计算机完成的工作,而且不针对某台计算机。高级语言中的每个源语句一般映射为几个 内部
机器指令,低级语言比较接近内部机器指令,通常称为汇编语言,一种汇编语言特地用 于一种
硬件设计,一般一个汇编指令映射为一个内部机器指令。
1.1.1
编程语言简史
FORTRAN是第一种开发出来的高级语言,第一个FORTRAN编译器是在上个世纪50年月后
期开发出来的。FORTRAN已有40多年的历史了,目前仍广泛应用于科学和工程计算中,但
C++和其他语言也渐渐进入这些领域。
COBOL语言特地用于商务数据处理应用程序,它的历史几乎与FORTRAN语言一样长。目前
几乎不用COBOL编写新代码,而是多年前编写的大量代码仍在使用,所以必需维护它们。
C++也渐渐成为很多商务数据处理程序的可选语言。
BASIC在上个世纪70年月诞生,那时已经有了个人计算机的概念。好玩的是,Microsoft销售
的第一个产品是一个BASIC解释程序。这种语言所固有的易用性使之很快普及,直到今日仍格
外流行。
Java是在上个世纪90年月开发的,它最初开发为Oak语言,用于给小型电子设备编程。1995
年,Oak演化为Java语言,可以在Web页面中内嵌代码,从那时起直到现在,这已经成为Java
的主要用途。Java成功的主要缘由是它的可移植性。Java程序可以在任何支持它的硬件平台
上运行,而且不需要任何修改。Java语言的语法有很多特性,使它看起来很象C++,但有很
大的区分。Java在可移植性方面比C++好,但执行性能比不上C++。
C在上个世纪70年月被开发为一种高级语言,用于低级编程,例照实现操作系统。大多数Unix
操作系统就是用C编写的。
C++是Bjarne Stroustrup在上个世纪80年月早期开发的,是一种基于C的面对对象语言。顾名
思义,C++表示C的累加。由于C++基于C,所以这两种语言有很多共同的语法和功能,C中
全部低级编程的功能都在C++中保存下来。但是,C++比其前身丰富得多,用途也广泛得多。
C++对内存治理功能进展了格外大的改进,C++还具有面对对象的功能,所以C在功能上只
是C++的一个很小的子集。C++在适用范围、性能和功能上也是无可匹敌的。因此,目前大
多数高性能的应用程序和系统仍使用C++编写。
1.1.2
解释性程序和编译性程序的执行过程
无论使用哪种编程语言,编写出来的程序都是由各个指令或源语句构成的,它们描述了期望计
算机执行的动作。这些指令或源语句统称为源代码,存储在磁盘的源文件中。任何规模的C++
程序都是由假设干个源文件组成的。
编程语言的目的是,与计算机可以执行的程序相比,能够更简洁地描述期望计算机执行的动 作。
计算机只能执行包含机器指令(也称为机器代码)的程序,不能直接执行我们编写的程序。用前面
提到的语言编写的程序根本上有两种执行方式,在大多数状况下,一种语言会选择其 中一种执
行方式。例如,用BASIC语言编写的程序通常是解释性的,也就是说,另一个称为 解释器的
程序会检查BASIC源代码,确定该程序要做什么,再让计算机完成这些动作。如图 1-1所示。
图1-1 解释性程序和编译性程序的执行过程
而C++是一种编译语言。在执行C++程序之前,必需用另一个程序(即编译器)把它转换为机 器
语言。编译器会检查并分析C++程序,并生成机器指令,以执行源代码指定的动作。固然, 解释
和编译都不像这里描述的那样简洁,但其工作原理就是这样。
使用解释性语言,执行过程是间接的,也就是说,每次执行程序时,都需要确定源代码的意 图
。因此,这种语言比编译语言的对应程序的执行速度慢得多,有时要慢100倍。其优点是 在
运行之前,不必等待程序的编译。使用解释性语言,一旦输入代码,就可以马上执行程序。任何一
种语言要么是解释性的,要么是编译性的,这通常由该语言的设计和用途来打算。前 面说过
BASIC是一种解释性语言,但这不是确定的,目前有很多BASIC语言的编译器。
于是,就有了“哪种语言比较好”这个问题。简洁地说,没有所谓“最好”的语言,由于这取决于
环境。例如,用BASIC编写程序通常比使用其他语言快得多,所以,假设开发速度比较重要
,但执行性能不是很重要,BASIC就是一种格外好的选择。另一方面,假设程序要求具有
C++供给的执行性能,或者应用程序需要C++中的功能而不是BAISC,明显就应使用C++。
假设应用程序必需在很多不同的计算机上执行,而且执行性能不是很重要,可能Java就是最
佳选择。
固然,不同的语言学习起来,所需的时间和难度也不全都。依据学习一种语言所需的时间,
C++可能是比较难的,但是不应放弃,这并不是说C++格外难,而是说C++比其他语言难一
些,需要较长的学习时间。
学习哪种语言的最终一个要点是,任何专业程序员都需要把握几种编程语言。假设读者是一位
初学者,这可能会使人觉得懊丧,但一旦学习并把握了一两种编程语言,再把握其他语言
就格外简洁了。第一种编程语言总是最难的。
1.1.3
库
每次编写程序时,假设总是要从头开头编写,就相当繁琐。在很多程序中,经常需要某种相 同
的功能,例如从键盘上输入数据,或在屏幕上显示信息,或依据指定的挨次对数据记录排 序。为
了解决这个问题,编程语言通常供给了大量预先编写好的代码,以执行标准的操作, 这样就
不必重新编写这些代码了。
可用于任意程序的标准代码都保存在一个库中。编程语言附带的库跟语言本身一样重要,由于
库的质量和使用范围对完成某一编程任务所需的时间有格外大的影响。
1.2 C++是一种强大的语言
1.3 一个简洁的C++程序
下面介绍一个格外简洁的C++程序,了解C++程序的组成。现在读者不需要输入代码,只是
了解一下建立程序的过程。这里也不具体介绍全部的细节,由于这些内容将在后面的章节中探
讨。如图1-2所示。
图1-2中所示的程序会显示如下消息:
The best place to start is at the beginning
这个程序不是很有用,但说明白几点。该程序由一个函数main()组成。函数是代码的一个自
包含块,用一个名称表示,在本例中是main。程序中还可以有很多其他代码,但每个C++程
序至少要包含函数main(),且只能有一个main()函数。C++程序的执行总是从main()中的第一
条语句开头。
图1-2 一个简洁的C++程序
该函数的第一行语句是:
int main()
这行语句指出,这是函数main的开头。开头的int表示这个函数在执行完后返回一个整数值。
由于这是函数main(),所以最初调用它的操作系统会接收这个值。
函数main()包含两个可执行语句,每个语句放在一行上:
cout << “The best place to start is at the
beginning“; return 0;
这两个语句会按挨次执行。通常状况下,函数中的语句总是按挨次执行,除非有一个语句改
变了执行挨次。第4章将介绍什么类型的语句可以转变执行挨次。
在C++中,输入和输出是使用流来执行的。假设要从程序中输出消息,可以把该消息放在输
出流中,假设要输入消息,那么把它放在输入流中。因此,流是数据源或数据池的一种抽象表
示。在程序执行时,每个流都关联着某个设备,关联着数据源的流就是输入流,关联着数据目
的地的就是输出流。对数据源或数据池使用抽象表示的优点是,无论流代表什么,编程都 是一
样的。例如,从磁盘文件中读取数据的方式与从键盘上读取完全一样。在C++中,标准 的输
出流和输入流称为cout和cin,在默认状况下,它们分别对应计算机屏幕和键盘。
main()中的第一行代码利用插入运算符<<把字符串The best place to start is at the beginning 放
在输出流中,从而把它输出到屏幕上。在编写涉及到输入的程序时,应使用提取运算符>>。
头文件包含的代码定义了一组可以在需要时包含在程序源文件中的标准功能。C++标准库中 供
给的功能存储在头文件中,但头文件不仅仅用于这个目的。我们可以创立自己的头文件, 包
含自己的代码。在这个程序中,名称cout在头文件iostream中定义。这是一个标准的头文 件,
它供给了在C++中使用标准输入和输出功能所需要的定义。假设程序不包含下面的代码 行:
#include <iostream>
就不会进展编译,由于<iostream>头文件包含了cout的定义,没有它,编译器就不知道cout
是什么。这是一个预处理指令,详见本书后面的内容。#include的作用是把<iostream>头文件的
内容插入程序源文件中该指令所在的位置。这是在程序编译之前完成的。
提示:
在尖括号和标准头文件名之间没有空格。在很多编译器中,两个尖括号<和>之间的空格是
很重要的,假设在这里插入了空格,程序就可能不编译。
函数体中的其次个语句,也是最终一个语句:
return 0;
完毕了该程序,把把握权返回给操作系统。它还把值0返回给操作系统。也可以返回其他值, 来
表示程序的不同完毕条件,操作系统还可以利用该值来推断程序是否执行成功。一般状况 下,0
表示程序正常完毕,非0值表示程序不正常完毕。但是,非0返回值是否起作用取决于 操作系
统。
1.3.1
名称
C++程序中的很多元素都有用来表示它们的名称,也称为标识符。在C++程序中,可以命名
的5种元素是:
(1)
函数。函数是自包含的、可执行代码的命名块。第8章将具体争辩如何定义函数。
(2)
变量。变量是内存中的指定区域,用于存储数据项。第2章将论述变量。
剩余20页未读,继续阅读
进击的朱亚文
- 粉丝: 0
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0