vlambda博客
学习文章列表

【信奥】信息学奥赛应该学C语言还是C++?

对于学习信息学奥赛的学生来说,初学时也有多大必要了解编程语言的特点。重点还是放在数据结构和算法上。

现在有不少学生学的是C语言,先看下图:

这是官方对编程语言的说明,2020年只支持C++。

不是说不学C语言的问题。有不少初学者都是先学C语言,再学C++。也有些初学者是直接学C++。

原因:可以说C++继承了C语言,C语言大部分功能和特性都能在C++中使用。如果两个语言都支持,那么相当于重复了。

那么C语言和C++有何异同点?

C语言支持面向过程的结构化编程,C++支持面向过程、面向对象、泛型编程等。

一头雾水?没关系,简单说,C语言和C++的最大区别是面向对象。而信息学奥赛是不需要学习面向对象。也可以这么说,C++相当于C语言加上标准模板库(STL)。而比较显著的地方是头文件的格式和输入输出。

下表中,对于stdlib库,C语言的写法是stdlib.h,而C++是cstdlib。其实就是把【.h】删掉,在开头加上字母【c】。

C语言 C++
stdlib.h cstdlib
stdio.h cstdio
math.h cmath
string.h cstring
... ...

C语言常用的输入和输出是scanf和printf。

而C++常用的输入和输出是cin和cout。

学C++的学生,老师也会教一点C语言。

所以说,如果现在是学C语言,以后还是要学C++。而只学C++的,也应该学一点C语言的知识点。当然,这些都是由老师负责教,作为学生重点还是放在数据结构和算法上。