信息学竞赛,学C还是C++?

C++是在C语言的基础上产生的,C++除了兼容C语言,还增加了标准模板库和面向对象两大特性。所谓标准模板库,就是C++中提供了一些好用的工具供程序员使用,而C语言不提供这些工具。面向对象才是C++和C语言的本质区别。C语言的重点是算法和数据结构,C++的重点是面向对象。

先看C++和C的关系。C++是在C语言的基础上产生的,C++除了兼容C语言,还增加了标准模板库和面向对象两大特性。所谓标准模板库,就是C++中提供了一些好用的工具供程序员使用,而C语言不提供这些工具。面向对象才是C++和C语言的本质区别。C语言的重点是算法和数据结构,C++的重点是面向对象。

工业界使用的C++主要用的是C++面向对象的特性,但是信息学竞赛不需要使用C++的面向对象特性。也就是说,信息学竞赛用的C++就相当于C语言加上标准模板库。

在基础语法阶段,C语言和C++除了头文件和输入输出不一样外,其他方面的差别很小。

NOIP目前支持的语言有PASCAL/C/C++,从2020年开始NOIP不再支持PASCAL语言,这是这是因为PASCAL现在在工业界很少有人使用。PASCAL被时代淘汰了。从2022年开始NOIP不再支持C语言,这不是因为C语言要被时代淘汰了,而是为了去掉重复的。因为C和C++是如此的类似,并且C++还多了一个使用方便的标准模板库,只保留C++就可以了。

单从信息学竞赛的角度来看,可以直接学C++,也可以先学C语言再学C++。这两种方式所用的时间也差不多。学完C语言再学C++,只需要把少量不一样的地方学一下即可,比如输入输出,再比如C++中的引用。至于标准模板库,无论是直接学C++,还是先学C语言再学C++,反正都是要学的。

但是若从求知的角度看,我个人更加推崇先学C语言;再学C++;等算法学到一定的程度后,C++的面向对象部分也可以适当了解。两个理由:一是在C和C++都很接近底层的前提下,C相对C++更接近底层;二是先学C语言再过渡到C++,自然而然就会理解C和C++设计和应用上的区别。

原创文章,作者:深圳信息学_中小学编程_编程培训_信息学竞赛_毕莘教育咨询(深圳)有限公司,如若转载,请注明出处:深圳信息学_中小学编程_编程培训_信息学竞赛_毕莘教育咨询(深圳)有限公司

联系我们

教务老师:余老师
联系电话(微信同号):14774755240
在线咨询:点击QQ在线咨询

QR code