前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >信息学竞赛,学C还是C++?

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

作者头像
海天一树
发布2019-07-10 10:12:57
2.6K0
发布2019-07-10 10:12:57
举报
文章被收录于专栏:海天一树海天一树

先看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++设计和应用上的区别。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息学竞赛NOIP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档