2011年计算机等级考试二级C 辅导笔记:C 与C语言的区别
文章作者 100test 发表时间 2011:07:04 03:47:58
来源 100Test.Com百考试题网
导读:本文着重介绍C 的特点,如类、继承和多重继承、运算符重载、类模板、C 标准库、模板库、等等。
注明:以下及其后续内容部分摘自《Standard C Bible》,所有程序代码都在Visual Stdio 6.0中编译运行,操作系统为WinXP。本文不涉及VC6.0开发工具的使用,只讲解C 语法知识。
C 和C的共同部分就不讲解了(如 常量和变量,循环语句和循环控制,数组和指针等,这里面的一些区别会在本节和下节介绍一下),本文着重介绍C 的特点,如类、继承和多重继承、运算符重载、类模板、C 标准库、模板库、等等。
一、C 概述
(一) 发展历史
1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C 语言。
1985年,C 开始在外面慢慢流行。经过多年的发展,C 已经有了多个版本。为次,ANSI和ISO的联合委员会于1989年着手为C 制定标准。1994年2月,该委员会出版了第一份非正式草案,1998年正式推出了C 的国际标准。
(二) C和C
C 是C的超集,也可以说C是C 的子集,因为C先出现。按常理说,C 编译器能够编译任何C程序,但是C和C 还是有一些小差别。
例如C 增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C 包含了所有的C,但显然没有任何C 编译器能编译这样的C程序。
C程序员可以省略函数原型,而C 不可以,一个不带参数的C函数原型必须把void写出来。而C 可以使用空参数列表。
C 中new和0delete是对内存分配的运算符,取代了C中的malloc和free。
标准C 中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
C 中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
C 中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
二、关键字和变量
C 相对与C增加了一些关键字,如下:
typename bool dynamic_cast mutable namespace
static_cast using catch explicit new
virtual operator false private template
volatile const protected this wchar_t
const_cast public throw friend true
reinterpret_cast try
bitor xor_e and_eq compl or_eq
not_eq bitand
在C 中还增加了bool型变量和wchar_t型变量:
布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。
#include iostream.h
int main()
{
bool flag.
flag=true.
if(flag) cout