C语言第一课
- 格式:pdf
- 大小:841.88 KB
- 文档页数:22
1初识C++语言
1.1关于C++
C++是一种计算机通用的高级程序设计语言。
开始形成的是C语言,那些想建立更快更有效的代码的程序员非常欣赏C语言。但有
一位名叫 Bjarne Stroustrup的人却不满足于仅仅是生产快速代码,他想创建面向对象的C
语言编程。他开始对C语言的内核进行必要的修改,使其能满足面向对象模型的要求。
C++从此产生。
C++自诞生以来,经过开发和扩充已成一种完全成熟的编程语言。现在C++已由
ANSI、BSI、DIN、其他几个国家标准机构和ISO定为标准。ISO标准于1997年11月4
日经投票正式通过。
C++ 标准演变了许多年。C++模板是近几年来对此语言的一种扩展,模板是根据类型
参数来产生函数和类的机制,有时也称模板为“参数化的类型”。使用模板,可以设计一个
对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模
板库(Standard Tempalte Library,STL )就是基于这个C++语言扩展的。
C++ 标准可分为两部分, C++语言本身和C++标准库。C++标准库提供了标准的输入
/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对
数值计算的支持。应该说, C/C++包含了相对少的关键字,而且很多最有用的函数都来源
于库。
C++标准库实现容器和算法的部分就是STL。 STL 是数据结构和算法的一个框架,数
据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、拷贝和排序等。1994年
7月,ANSI/ISO C++标准委员会投票决定接受STL为C++标准库的一部分。STL的产生是
为了满足通用性的设计目标,而不是为了提高性能。
1.1.1C++的发展:
C++程序设计语言是由来自AT&T 贝尔实现室的Bjarne Stroustrup设计和实现的,它
兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言特性。
C++最初的版本被称作“带类的C(C with classes)”,在1980年被第一次投入使用;
当时它只支持系统程序设计和数据抽象技术。
支持面向对象程序设计的语言特性在1983年被加入C++;之后,面向对象设计方法和
面向对象程序设计技术就逐渐进入了C++领域。
在1985年,C++ 第一次投入商业市场。
在1987至1989年间,支持范型程序设计的语言特性也被加进了C++
随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990
年启动。标准化工作由ANSI(American National Standard Institute)以及后来加入的
ISO(International Standards Organization)负责。1998年正式发布了C++语言的国际标准。1.1.2C++的开发环境:
Visual Studio 6.0
这个虽然是Microsoft公司的老版本的开发环境,但是鉴于其后继版本Visual
Studio.NET的庞大身躯,以及初学者并不那么高的功能要求,所以推荐这个开发环境给
C++的初学者,供其学习C++的最基本的部分,比如C的那部分子集,当然你别指望他能
够支持最新的C99标准。在日常的开发中,仍然有很多公司使用这个经典稳定的环境,比
如笔者就看曾亲见有些公司将其编译器替换为GCC做手机开发之用。
Visual Studio.NET
作为Microsoft公司官方正式发布的最新版本开发环境,其中有太多激动人心的功能。
结合其最新的C++编译器。对于机器配置比较好的开发人员来说,使用这个开发环境将能
满足其大部分的要求。
Borland C++ Builder X
C++BuilderX则是完全从C++的角度思考得出的一个功能丰富的IDE。其最大的特点
是跨平台,跨编译器,多种Framework的集成,并且有一个WxWindows为基础的GUI设
计器。尤其是采用了纯C++来重写了整个Framework,摒弃了以前令人无奈的版本。对于
C++的开发来说,从编译器,到库,到功能集成都是非常理想的。可以预见,Borland C++
Builder X 2.0很值得C++爱好者期待。唯一令人难堪之处是作为一个C++的开发工具,其
IDE是用Java写的,在配置不够理想的机器上请慎重考虑再安装。
Dev C++
GCC是一个很好的编译器。在Windows上的C++编译器一直和标准有着一段距离的
时候,GCC就是一个让Windows下开发者流口水的编译器。Dev-C++就是能够让GCC跑
在Windows下的工具,作为集成开发环境,还提供了同专业IDE相媲美的语法高亮,代码
提示,调试等功能。
由于使用Delphi开发,占用内存少,速度很快,比较适合轻量级的学习和使用。
1.2Dev-cpp的环境
启动Dev-c++后的环境如下:在这个环境中,编辑好源代码后,单击可以编译源代码,如果编译有错误,则列
出错误,并停止编译,这个操作的快捷键为Ctrl+F9。如果编译成功,则可以单击,运行编译好的程序。当然,也可以单击,编译当前的程序并运行。这个操作的快捷键为F9.
一些有用的快捷键:
Ctrl+y:删除当前行
Ctrl+n:新建源文件窗口
Insert:插入与改写状态切换
1.3C++程序结构
1.3.1Hello Word!
输入以下程序并编译、运行。
#include
using namespace std;
int main()
{
cout<<"Hello Word!"<
}
从这个mini程序可以看到C++程序的一般格式。注释如下:
#include //包含要使用的库函数。这里是输入输出功能。因为一个
//信息系统总要输入输出信息,所以基本上每个程序都会
//包含它。using namespace std; //把std名字空间打开,程序可以正确识别std中的名
字了,//如cout,endl等(开盖子语句)。
int main() //主函数,执行入口,在最新标准中,它必须返回int
//类型数据
{ //函数的内容必须放在{}括号中
cout<<"Hello Word!"<
} //函数结束
还可以看到,程序的语句必须用分号结束
在Dev-cpp中,执行后屏幕一闪,就回到编辑界面,怎样让程序等一会,让我们能看
清执行结果。有两种方法:int main()
{
cout<<"Hello Word!"<
getchar();
}
这种方法调用函数getchar(),它等待从命令行得到一个字符,回车结束。所以回车后
回到编辑界面。或:
int main()
{
cout<<"Hello Word!"<
system(“pause”);
}
这种方法调用Windows中的cmd命令“pause”,按任意键回到编辑界面。练习:
(1)在Dev-cpp中编写代码,让它说一些你想说的话。注意,在它可以说中国话,
只要把它放到英文的引号中就行。
(2)编程序显示一首唐诗
(3)编程,用字符*组成一个3列5行的平行四边形
1.3.2能说会算
放在引号中的内容会原样输出。如果不放在引号中呢?比如编程计算123×321.
#include
using namespace std;
int main()
{
cout<<321*123<
getchar();
}
可以看到,对于没有放到引号中的类型,C++会把这些内容作为表达式,计算并输出这个
表达式的值。
练习:(1)计算半径为12的球的体积
(2)一元二次方程的系数分别为1 ,5,3,求这个方程的根。 C++中的常用算术运算符:
运算C++中的运算符
++
--
×*
÷/
求余数%
1.3.3变量
如果在Hello Word程序中,去掉引号,会发生什么。试一试。
对了,它把Hello看成了一个变量,并报告说Hello这个变量没有定义。C++是一种强类型
语言,要求所有的变量都要先定义后使用。
定义变量的方法为:
类型名 变量名
如:
int a; //定义一个变量,变量名为a,它的类型为整型
double c,d; //定义两个变量,变量名为c和d,它们的类型都为double
int b=12; //定义一个变量,变量名为b,类型为整型,同时给变量b赋值,让变量b的值
为
//12.
要改变一个变量的值,可以使用赋值号“=”,它的作用是:计算出等号右边的表达式的值,
然后把这个结果赋值给等号右边的变量。如执行以下语句:
b=-1;
可以让变量b的值为-1C++常用基本数据类型
类型说明长度(字节)表示范围备注
char字符型1-128~127
unsigned char无符号字符10~255
int整型4约±21亿
unsigned int无符号整型40到约42亿
double双精度型8约±1030815位有效位
bool布尔型1true和false
练习:
(1)计算半径为12的球的体积,把球的半径保存在变量r中,把球的体积放到变量v中。
(2)一元二次方程的系数分别为1 ,5,3,求这个方程的根。把系数分别保存在变量
a,b,c中。判别式结果保存在d中,根分别保存在x1和x2中。
(3)在第一题中,如果忘记给变量r赋值,会得到什么结果。为什么?