对于学习信息学奥赛的学生来说,初学时也有多大必要了解编程语言的特点。重点还是放在数据结构和算法上。
现在有不少学生学的是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语言的知识点。当然,这些都是由老师负责教,作为学生重点还是放在数据结构和算法上。