C/C++之美

这里写图片描述

介绍C/C++的原因

对于初学者来说,学习C/C++可以快速了解编程,掌握C/C++中的结构化编程,正如编程中的一句话“Think in C, thing in java!”。

C/C+的历史与故事

C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
这里写图片描述
1980年,C++的早期版本诞生,称作带类的C(C with Classes)。1983年Rick Mascitti建议将带类的C命名为C++(C Plus Plus),从此,C++作为一个优秀的程序设计语言被广为人知。C++是在C语言的基础上开发出来的,是C语言的超集,同时参考了很多其他语言的特性,例如Simula中的类概念,Algol68的运算符重载、引用及在任何地方声明变量的特性,BCPL的//注释和Ada语言中的模板、命名空间以及Ada、Clu和ML中的异常概念,它既具有C语言的高效性和灵活性,也提供了程序组织的高层特性。

1983年之后,C++使用的爆炸式增长。传统的面向用户遇到的问题及基于同事间讨论的演化方式已无法满足需求,迫切需要对C++语言进行标准化。1989年,《The Annotated C++ Reference Manual》发布,成为C++标准的基础。同年12月,ANSI的X3J16委员会成立并在华盛顿召开第一次技术会议,ANSI C++标准的制定开始提上日程。1991年7月ANSI C++标准化成为ISO标准化工作的一部分。1995年4月,C++标准草案提交公众审阅,1998年ISO C++标准通过ISO评审成为国际标准,称作C++98.

2003年,C++标准委员会对C++98中的问题进行了修订,发布了C++03版本,该版本并没有对核心语言进行修改。2011年,新的C++标准C++11面世,增加了多线程支持、通用编程支持等,标准库也有很多变化,集成了C++技术报告1库(TR1)中的大部分内容。2014年12月15号,C++ ISO/IEC标准的最新版本C++14。C++14是对C++11的小范围的扩展,主要内容是修复bug和略微提高性能。

C/C++与别的语言相比的优势

优点
1、简洁紧凑、灵活方便

2、运算符丰富

3、数据类型丰富

4、表达方式灵活实用

5、允许直接访问物理地址,对硬件进行操作

6、生成目标代码质量高,程序执行效率高

7、可移植性好

8、表达力强

C/C++与别的语言相比的缺点

  • 缺点
    1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
    2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。
    这里写图片描述

C/C++例子

#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[100];
for(int i = 1; i <= n; i++)
cin >> a[i];
for(int i = 2; i <= n; i++)
{
int j = i - 1;
int key = a[i];
while(j > 0 && a[j] > key)
{
a[j+1] = a[j];
j--;
}
a[j+1] = key;
}
for(int i = 1; i <= n; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}

优势:以分号结尾,清晰明了;
缺点:冗杂。

C/C++语言对产业产生的后续影响

常用的软件几乎大多数缺都是C++写的、、
office软件:MS office,wps office,openoffice/libreoffice、、、
你所用的windows也用了大量的C++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章