这里分享的是C/C++学习阶段所需网站,经博主自用使用频率较高的几个网站。废话不多说,直接看正文。
ps:初学者可以从菜鸟教程、w3school 在线教程等网站学习一遍基础知识,再结合本篇文章提供的网站食用更佳。
参考手册:顾名思义,关于某个标准库的定义、用法等,内部成员、特性等方面,需要查找的时候直接上手。
总结:非常全面,使用简单,可以让我们像查字典一样查语法。
C 参考手册 - cppreference.com
点评:非常好用,C的语法规则,标准库函数完备。
C++ 参考手册 - cppreference.com
点评:同上,强烈推荐。建议配合插件C/C++ Search Extension使用。
C++ 参考手册 - C++中文 - API参考文档
点评:此网站应该是Cppreference的国内镜像站点。访问速度优于Cppreference。
C++ 语言文档 - 入门、教程、参考。 | Microsoft Docs
点评:微软Visual Studio编译器官方文档,配合编译器F1键可以直接跳转到对应函数说明。对于使用VS编译器的人来说,不可或缺。
cplusplus.com - The C++ Resources Network
点评:同样是一个比较知名的工具网站。(推荐)
Stack Overflow - Where Developers Learn, Share, & Build Careers
点评:一个专注于提问的网站,可以说我们平时遇到的编程问题百分之90以上都可以在这里找到答案。(也适用于其他语言)
说明:C和C ++具有未定义的行为,因为它允许编译器避免大量检查。假设一组具有更大执行阵列的代码无需保留界限,这避免了复杂优化通过的需求来检查外部环路的此类条件。当它获得符号溢出的未定义性质的优势时,紧密绑定的循环从35%的速度加快到50%,这通常由C编译器提供。
.
我们还具有另一个优势,因为它允许我们将变量的值存储在处理器寄存器中并在源代码中的变量大于变量的时间内操作。它还有助于包裹围绕然后编译时间检查,而不会更大的C / C ++编译器中的未定义行为的知识。
点评:因为C/C++具有UB的特点,不同编译器对一些未定义的行为拥有解释权,也就造成了不同编译器编译同一源码造成的结果不同的现象。
api文档其实和参考手册概念差不多,此标题用于C/C++语法之外的扩展选项。
这里汇总一些可能会用到的第三方的非标转库的api。例如man手册页、windows api, boost库api等。
在LinuxC/C++编程中,会用到Linux的一些系统调用,或者C库函数,以往我们在终端中输入man命令调取手册页信息阅读。现在可以通过以下在线man手册线上检索各命令的手册了。
Windows API 就是 windows应用程序接口,是针对microsoft windows操作系统家族的系统编程接口。
Windows API包括几千个可调用的函数,它们大致可以分为以下几个大类:基本服务、 组件服务、 用户界面服务、 图形多媒体服务、 消息和协作、 网络、 Web服务。
Windows API 参考手册
对于Linux C网络编程而言,一个比较好用的事件通知库——libevent。
Boost Library Documentation
点评:C++标准库许多函数都是由Boost库发展而来,这个参考页提供了boost库函数的文档,值得收藏,以备不时之需。
学习一门语言阅读源码必不可少。C/C++源码很庞大,仅凭个人之力很难吃透,但对于其中一些设计思想,以及一些巧妙的编程技巧我们是可以借鉴学习的。
比如,C库函数中strcpy是怎样实现的,相信你阅读看原码后感叹,原来还有这么精简的写法。同理,C语言初学者接触最多的 printf 函数是怎样实现的,你就不感兴趣吗?这一切都在源码中等着你去寻找。
Woboq Code Browser - Explore C++ code on the web
点评:该网站支持 Qt | GLibc | LLVM | Boost | GCC | Linux 等源码在线阅读,同时支持代码跳转,引用展开等功能,非常好用。(强烈推荐)
面试可以分为理论知识和代码能力,除此之外就是项目实践了。
牛客网是在招聘求职方面的老牌网站了。例如这个C++工程师面试宝典:
【C++工程师面试宝典】学习说明_互联网校招面试真题面经汇总_牛客网 让我们可以系统的回顾和整了C/C++知识。
牛客网的这个专项练习,以选择题的方式对编程、数据库、算法等等技术进行刷题式学习,有助于查漏补缺,学习效率显著提升。
牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网
思科官方提供的路由网络方面的基础知识,当然对于非网络专业的可以选看部分网络知识,内有动态图和测评有助于我们学习网络。
对于网路专业的学生可以细品,有必要时可以结合packer trace模拟器详细理解数据包发送,个阶段拆包解包过程,用心学习受益良多。
一个学习git的网站,通过小游戏闯关的形式,图文并茂,让我们了解git的每一个命令具体进行那些动作。
除了有丰富的理论知识外,我们也需要具备一定的编程能力,只会“纸上谈兵”可不行啊。
牛客网提供历年各公司真题,支持在线编程。同时内部论坛常年分享面试经验,内推等机会。(强烈推荐)
牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网
LeetCode (力扣)提供在线刷题,并且有着完善的用例测试机制和完备的题解机制。只需要跟着[每日一题]持续签到打卡,哪怕你是编程小白也可以轻松应付各种问题。如果有能力也可打竞赛。
题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台
不多解释,看首页就知道,也有许多知名公司选择在此平台进行面试。
真题练习 - 【赛码网】免费在线考试系统、在线面试系统-易用稳定专业
不用多解释,大家都知道。
GitHub
另外,诸如gitLab、gitee、gods等平台也不错。
该网站提供一些比较经典的算法问题,喜欢的可以体验一下。
Alchemist
分享两个关于数据结构可视化的网站,一些常见的算法和数据结构,通过网站的动态模拟可以让我更容易理解。
数据结构和算法动态可视化 (Chinese) - VisuAlgo
Regulex:JavaScript Regular Expression Visualizer(以图片方式解析正则表达式)
regex101: build, test, and debug regex(正则在线生成和测试)
Linux公社 - Linux系统门户网站
Unix技术网 = 专业的Linux/Unix应用与开发者社区 = IT人的网上家园
Test Bash Script Online - Online Bash Script Tester - Shell Scripting online
ShellCheck – shell script analysis tool
explainshell.com - match command-line arguments to their help text
写在最后。
上述网站都是在我学习和工作中积累而来,不论是学习还是工作,找到一个趁手的网站真的能事半功倍。当然以上分享的内容大都围绕我们学习而言,可以让我们少走很多弯路。
当然优秀的网站还有很多,这里我只分享了一些可能对大家有帮助的,并且是平时比较常用的一些网站。
如果大家也有其他优秀的网站。欢迎在评论区补充分享。