热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【如何系统地学习C++语言】从开发环境到C++进阶,应该怎么办?

开发环境如前面介绍的那样,C属于一种静态的编译型语言,所以,开发环境配置过程中就需要用到对应的编译器。C有很多编译器可以用࿰

开发环境

如前面介绍的那样,C++属于一种静态的编译型语言,所以,开发环境配置过程中就需要用到对应的编译器。

C++有很多编译器可以用,GCC或GNU Compiler Collection是最流行的C++编译器之一。

下面是不同操作系统下的编译器安装方式。

Linux

如果你使用的是Linux,可能已经默认安装了GCC。

如果没有,可以通过如下命令安装:

Linux下的IDE可以选择Codeblocks IDE或Eclipse CDT在Linux。


macOS

在Mac上,你可以使用Clang或GCC,两者都是免费的。

虽然GCC支持更广泛的C和C++标准,但Clang在大多数情况下都能正常工作。

可以使用Homebrew安装GCC:

开发工具方面,可以选择Visual Studio Code或者Xcode。


Windows

在Windows上有很多好的编译器。

在Windows上,Visual Studio提供了一个C++编译器,该编译器还可以构建C语言程序。

Visual Studio有自己强大的、功能丰富的IDE,对于任何开始使用C或C++的人或主要针对Windows平台的人来说,它是一个很好的选择。

如果你想要更符合标准的编译器,GCC(MinGW)也可以使用,Codeblocks IDE通过设置就可以满足需求。

IDE方面,Clang是目前比较好用的的工具,除此之外,还有一些跨平台的IDE,如Eclipse CDT、Jetbrains CLion和Netbeans,它们提供了功能齐全的C和C++开发环境。

最近,Visual Studio Code非常火热,在很多编程语言比较受欢迎,它也可用于Linux和Mac环境。


C++入门

语法是一种编程语言的核心,也是用C++开发的基础,就如同我们说汉语、英语一样,语法定义了C++代码的组成和理解方式。

下面看一段示例代码:

#include :这是一个头文件库,将功能导入到程序中。该命令的含义是程序从一个名的文件中导入内容,该文件代表输入和输出流。

using namespace std:指的是来自标准库(std)的对象和变量名称,通常用关键字std和运算符::来缩写。

int main ( ): 指定了一个主函数。函数是C++程序的一个重要部分,因为它们在代码中定义了一个动作,包含在括号{ }中的代码将被执行。

cout(读作see-out):是一个定义输出的对象,也就是代码中的字串,这里会输出Hello World。

return 0:指示程序不返回任何东西,文本字符串将是唯一的输出。

<<&#xff1a;是一个用于命名对象的操作符&#xff0c;而;&#xff08;分号冒号&#xff09;则作为一行代码的结束标识。

把这些放在一起&#xff0c;就组成了一段完成的C&#43;&#43;代码。

通过这段简短的代码就简单的涵盖了C&#43;&#43;中的一些基本语法&#xff0c;如果不首先学会基础语法&#xff0c;看这段代码如同天书一样&#xff0c;不知道它在做什么&#xff1f;它有什么含义&#xff1f;

如果了解基本语法&#xff0c;就能够像看一段汉语一样轻松理解它表示什么。

基本语法只是入门的一个方面&#xff0c;除此之外还要对如下内容有基本的认知&#xff1a;

函数--一个函数是一组语句&#xff0c;它们共同执行一项任务&#xff0c;每个C&#43;&#43;程序至少有一个函数

数组--数组是一种数据结构&#xff0c;用于存储固定大小的同类元素的顺序集合

字符串- 字符串是由字符组成的一维数组&#xff0c;以空字符&#39;/0&#39;结束

指针- 指针是变量&#xff0c;其值是其他变量的地址。指针有助于更容易地执行C&#43;&#43;任务&#xff0c;有些任务没有它们就无法执行

引用--引用是一个别名&#xff0c;是一个已经存在的变量的另一个名字。如果一个引用被初始化为一个变量&#xff0c;那么这个变量的名字和引用的名字就可以交替使用来指代这个变量

类和对象--类是C&#43;&#43;的一个关键特征&#xff0c;通过将数据表示和操作该数据的方法结合到一个包中来指定一个对象的形式

多态--多态意味着有多种形式。在C&#43;&#43;中&#xff0c;这指的是调用一个数值函数导致不同的函数被执行&#xff0c;这取决于调用该函数的对象的类型

C&#43;&#43;实战

在入门C&#43;&#43;并学习了一些C&#43;&#43;编程技巧后&#xff0c;接下来需要做的就是把它们好好利用起来了&#xff0c;在实战中打磨并熟练C&#43;&#43;。

做到这一点的一个方法是通过做一个项目来了解该语言的各个方面是如何结合起来的。

目前Github上有很多相关的项目&#xff0c;我们可以通过阅读相关的代码&#xff0c;理解它的实现过程&#xff0c;然后自己复现相关的项目来起到实战的作用。

也可以根据自己感兴趣的领域&#xff0c;给你寻找一些相关的需求场景&#xff0c;然后通过C&#43;&#43;实现相应的工具或者软件。

例如&#xff0c;开发一款简单的小游戏、实现一个文献翻译工具、开发一个简易的计算器等等。


C&#43;&#43;进阶

中级和高级C&#43;&#43;编程建立在基础知识之上。

《C&#43;&#43; Crash Course》一书的作者Lospinoso说&#xff0c;在中级阶段&#xff0c;程序员需要了解引用和指针如何工作。支撑最强大的C&#43;&#43;功能的其他核心概念&#xff0c;例如&#xff0c;对象生命周期和多态。

对这些概念如何理解、如何使用&#xff0c;以及如何高效的应用于项目中&#xff0c;则是走上进阶路线上必须学会的。

在进阶之路上&#xff0c;一个C&#43;&#43;程序要做的就不再是如何通过基本语法或者面向对象编程去实现一项功能或者一个系统&#xff0c;而是学会并熟练通用编程、泛型编程&#xff0c;也就是说&#xff0c;需要考虑代码的通用性、可扩展性&#xff0c;以便后续可以更好的向后兼容&#xff0c;以及更加容易适应多平台的需求。


如果大家想好好学习C/C&#43;&#43;的话&#xff0c;为了帮助大家&#xff0c;轻松&#xff0c;高效学习C语言/C&#43;&#43;,给大家分享我收集的资源&#xff0c;从最零基础开始的&#xff1a;

编程学习视频分享&#xff1a;

 

 整理分享&#xff08;多年学习的源码、项目实战视频、项目笔记&#xff0c;基础入门教程&#xff09;最重要的是你可以在群里面交流提问编程问题哦&#xff01;

有需要的童鞋可以来到我下方交流群里面哦~


推荐阅读
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • OO第一单元自白:简单多项式导函数的设计与bug分析
    本文介绍了作者在学习OO的第一次作业中所遇到的问题及其解决方案。作者通过建立Multinomial和Monomial两个类来实现多项式和单项式,并通过append方法将单项式组合为多项式,并在此过程中合并同类项。作者还介绍了单项式和多项式的求导方法,并解释了如何利用正则表达式提取各个单项式并进行求导。同时,作者还对自己在输入合法性判断上的不足进行了bug分析,指出了自己在处理指数情况时出现的问题,并总结了被hack的原因。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • 前一天学习了视图按键事件的监听。首先新建了一个自定义的视图,在自定义视图中,重新编了其构造函数和onDraw()方法。之后将该视图用于应用程序,最后添加该视图的按键监听器,在监听器中对KeyEvent ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
author-avatar
温蚊童鞋_612
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有