第三节 C++ + 语言概述

第三节 C++ + 语言概述

1.3.1C++的 的 起源
20 世纪 70 年代中期,Bjarne Stroustrup 以 C 为背景,以 Simula 思想为基础,实践他的设想。1979 年,Bjarne Stroustrup 到了 Bell 实验室,开始从事将 C 改良为带类的 C(C with classes)的工作。1983 年该语言被正式命名为 C++。自从 C++被发明以来,它经历了 3 次主要的修订,每一次修订都为 C++增加了新的特征并作了一些修改。第一次修订是在 1985 年,第二次修订是在 1990 年,而第三次修订发生在C++的标准化过程中。20 世纪 90 年代早期,人们开始为 C++建立一个标准,并成立了一个ANSI 和 ISO 国际标准化组织的联合标准化委员会。该委员会在 1994 年 1 月 25 日提出了第一个标准化草案。在这个草案中,委员会在保持 Stroustrup 最初定义的所有特征的同时,还增加了一些新的特征。1998 年,C++的 ANSI/ISO 标准被投入使用。通常,这个版本的 C++被认为是标准 C++ 。
1.3.2C++ 优点
C++设计成静态类型、和 C 同样高效且可移植的多用途程序设计语言。
C++设计直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。
C++设计无需复杂的程序设计环境。
C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比,可以直接访问物理地址,与汇编语
言相比又具有良好的可读性和可移植性。
1.3.3 认识 C++ 语言
让我们先来看一个 C++程序,通过这个程序了解 C++的规则。
//File:hello.cpp
//this program prints the message (一)程序注释
//“Hello World” On the Screen
#include (二)预处理命令
int main()
{
std::cout<<“Hello world’”<<std::endl; (三)主程序
return 0;
}
1.1 3.3.1 程序注释
C++的注释是从//开始到本行结束。注释是写给人看的,而不是写给计算机的。程序注释可以从整体描述程序操作过程。注释也可以出现在主程序中,解释主程序中一些比较难理解的部分。
1.2 3.3.2 预处理命令
以#开头的指令是预处理命令,我们用的最多的是库包含:用#include 实现,表示程序使用了某个库。C++的编译分成两个阶段:预编译和编译。编译预处理程序中的预编译命令,即那些以#开头的指令。
编译预处理主要有:
 库包含:用#include 实现,表示程序使用了某个库
 宏定义:用#define 实现。宏包括不带参数的宏和带参数的宏。不带参数的宏通常用来定义符号常量。带参数的宏用来定义一些较为复杂的操作。C++中一般不提倡定义宏。
库与库包含库是预先做好的一些工具程序。每个库要提供一个接口,告诉库的用户如何使用库提供的功能。
库包含就是把库的接口文件放入源文件,以便编译器检查程序中对库的调用是否正确。
库包含格式:
 #include :包含了一个系统库
 #include “filename ":包含了一个用户自定义库
1.3 3.3.3 主程序
日常生活中,我们要完成一件具有复杂功能的事,总是习惯把“大功能”分解为多个“小功能”来实现。在 C++程序的世界里,“功能”可称为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其他代码调用。主程序由一个或多个函数组成每个程序
都必须有一个名为 main 的函数,它是程序的入口。
Int main() //函数头
{
Std::cout<<“hello everyone”<<Std::endl;
return 0;
}
//花括号{}引起来的就是函数体一般每个函数都需要有一个返回值,用 return 语句返回。
1.3.3.3.1cout 语句
cout 是 C++的输出语句,C++的输出和输入是用“流”(stream)的方式实现的。图 1.2 C++的输出流在定义流对象时.系统会在内存中开辟一段缓冲区,用来暂存输人输出流的数据。在执行 cout 语句时,先把数据存放在愉出缓冲区中,直到输出缓冲区满或遇到 cout 语句中的 endl或’\n’为止.此时将缓冲区中已有的数据一起输出,并清空缓冲区二输出流中的数据在系统默认的设备(一般为显示器)输出。输出遇到 endl 或’\n’换行。
cout 语句的一般格式为:
cout<<项目 1<<项目 2<<…项目 n;
功能:
(1)如果项目是表达式,则输出表达式的值。
(2)如果项目加引号,则输出引号内的内容。
例如
 将 hello 显示在屏幕上:std::cout<<“hello”;
 std::cout<<“hello,everyone”<<std::endl;
其中,sid::endl 表示换行
1.3.3.3.2 名字空间
名字空间是把一组程序实体组合在一起,构成的一个作用域。一个名字空间中不能有重名,不同的名字空间中可以定义相同的实体名。当引用某个实体时,需要加上名字空间的限定程序中的 std 是 C++中所有标准库的名字空间名。指明程序采用的名字空间。采用名字空问是为了在 C++新标准中,解决多人同时编写大型程序时名字产生冲突问题。比如 A、B 两个班有叫张三的人,你要使用 A 班的张三,必然要先指明是 A 班这个名字空间(namespace)。
然后你对张三的所有命令才能达到你的预想,不会叫错人。
使用名字空间的指令
格式:using namespace 名字空间名;
最常用:using namespace std;
一旦用了使用名字空间的指令,该名字空间中的所有的实体在引用时就不需要再加名字空间的限定了。

背诵并默写主要代码段
#include
using namespace std
int main(){

return 0;
}
1.4 3.3.4 解释和编译
在某种计算机语言环境下编写程序的过程,叫程序的编辑。程序编辑好后,计算机是不是就可以立即运行呢?其实不然。这个程序在没有被计算机识别之前,仅仅只是一些符号所组成的文本。就像我们读的书籍一样,如果不经过大脑去领会书籍内容所包含的含义,文字永远只能是文字,课本也只能是课本,但经过我们的大脑学
习和领会了书籍文字中所包含的内涵和思想,那么看起来死板的文字就成为大脑所学到的知识:程序也一样,也需要计算机去学习和领会程序所包含的含义,这个学习和领悟的过程当然不完全类似人脑对知识的学习,而仅仅是按照计算机语言所对应的规则,对所编写的程序进行解析的过程,这个过程叫翻译。翻译分为两种方式,一种叫解释,是计算机对程序的指令翻译一句执行一句的行为,BASIC 语言和 Java 语言都属于解释型语言;另一种叫编译,是
计算机对程序的全部指令一次性全部翻译后,再让计算机执行的行为,PA5CAL 语言和 C++语言都属于编译型语言。
练习
1.3.4 安装和使用 DEV C++
. 1.3 31 .4.1 程序界面
图 1.3 安装完成的软件界面
图 1.4 创建新文件
图 1.5 编写代码
图 1.6 编译及运行
1.3 32 .4.2 程序设计与调试建议
良好的程序设计行为与调试习惯,有助于培养学习兴趣和深入学习
1、 透彻分析问题,给出能够实施的具体解决问题的方法和步骤,即设计完整的算法和数据结钩,写程序的过程即用语言规定的语句描述解决问题的方法和步骤。不可只有一个大致的想法就匆忙开始写程序。
2、 分析问题过程中,给出问题可能存在的各种数据状态和结果,如边界数据等,帮助有效得到正确的解决方案,测试程序的正确性。
3、 编译运行程序前,先进行静态查错.所调静态查错.即认真阅读一遍所写的程序。检查是否正确表达所设计的算法、数据结构、程序模块。特别关注细节表达,如:
变量名、数据类型、数据边界、变址初值、数据传递等。
4、 编译运行程序.先利川用能够预见的可能存在的各种数据状态和结果测试程序,再设计大数据测试程序。
5、 调试程序尽量不依赖调试工具。
练习
1、程序设计题
(1)输出“3”这个数
(2)尝试编程输出 2017+2018 的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值