为准大学生准备的C/C++编程起步教程

最近越来越多的其它领域的大佬陆陆续续来找我 “垂询” 编程起步的方法了,攥写本文一是考虑到逐个回复所费时间甚多,二者是鄙人的脑子实在不是很好用总是会出现记漏东西或者表述不清的情况。

希望这篇教程能够帮到各位初学者。

1.相关概念解析

如果后面理解东西出现了疑惑再跳回来看看:)

A. 编辑器 / 编译器 / IDE / 开发环境

编辑器指的是你用来打字的工具(就像记事本或者小米便签),编译器是用来将你的代码从单纯的文本转化为程序的工具。

首先你需要用编辑器录入一段代码,然后保存为  后缀名与语言相对应  的文件,然后用编译器将它编译为机器看得懂的机器码(也就是exe程序),最后运行这个exe程序

编辑 -> 编译 -> 运行

比较出名的编辑器有Notepad++,Vim和Emacs,Windows自带的记事本是可以用的,真的,不过小米便签就,,,,,

编译器一般我们是使用G++GCC(后者现在在某种意义上是被前者所包含的),你只需要知道有这么个东西即可,后面是遇不到的。

IDE(Integrated Development Environment )  即为集成开发环境(但我们还是习惯叫IDE),我们现在可以理解为他把编辑器编译器以及其它一些有用的东西集成在一起方便开发。

开发环境是一个比较随意的概念,由于笔者认为这个概念很随意所以我开始怀疑自己是不是真的知道这是什么.... 我也许很不负责任地说 “大概就是那个样子吧”

B. C++ / C

两者的差别真没那么大... C++脱胎于C并和C各有专长,但这些对初学者来说真没什么区别。C++和C的语法规范是几乎完全一样的,但是你看看隔壁Python....

1 #include<stdio.h>
2 int main(){
3     printf("Hello,World!");
4     return 0;
5 }

C版本的Hello world

1 #include<cstdio>
2 int main(){
3     printf("Hello,World!");
4     return 0;
5 }

C++版本的Hello world

1 #include<cstdio>
2 #include<iostream>
3 using namespace std;
4 int main(){
5     cout << "Hello, World!";
6     return 0;
7 }

另一种C++的Hello World

1 print(‘Hello World!‘)

Python版本的Hello world

所以请不要过度纠结C和C++之间的问题,最多也就是口音不大一样而已...

C. Win键 / CMD

Win键(下左)

CMD(上右),命令提示符,命令行是同个东西,来自以前的DOS,所以如果你要专门研究这个的话可以百度DOS的指令或者在CMD里输入个Help

其实后面编程我们讲到的小黑窗跟CMD关系很深...

如果你打算自己用编辑器和编译器手动造一个IDE的话你就会知道其实他们也是同一个东西...

D. 面向过程 / 面向对象

面向过程的C,面向对象的C++和Java,这些其实是语言特性,对初学者来说真的不重要(对我来说也暂时还感觉不到什么区别其实)。如果有人非要吹这个逼无视就好了。

E. 底层 / 前端 / 全栈 / 汇编

C其实是非常接近汇编的语言,语言分三级:高级语言 / 汇编语言 / 机器语言

高级语言是指C/C++/Java这些给人看的语言,机器语言又称机器码,是二进制语言0001110101011100101010这些,给机器看的、机器可以直接运行的语言。

这个倒过来就是计算机编程语言的发展历程(所以汇编语言... 有兴趣者百度或者B站找SHENZHEN I/O,那是一款很不错的汇编相关的游戏)。

身处底层的C语言相比其他语言更接近计算机的本质(误)。一个项目其实是可以由很多种模块构成的,他们之间通过接口互相连接传输信息,然后各个模块由最适合的语言编写,比如涉及到核心的处理数据的部分可以用C语言写,比较快速,涉及到用户看得到的界面(GUI)可以用Java写(C语言的标配小黑窗是真的难看,Java图形编程还行不错),看上去会比较慢

所以前端... 大概也能理解是啥意思了吧!对应还有一个后端。前后端是网页编程的概念,前端可以近似理解为用户看得到的部分,后端就是....看不到的部分

全栈类似于这个人啥都会干,能单独完成一个项目(像独立游戏开发者就是全栈工程师,连音乐都自己写)

2. 准备开发环境

A. 简单路线:使用IDE

当然我们还是需要一个IDE的.... 这才正常

我们使用Dev-c++:点击此处下载DevC++

Dev c++的优点在于它真的很方便... 安装的时候会顺带安装GCC这样你就不用发愁安装编译器的问题啦!

注意!关于如何设置他的语言!安装的时候选择语言English,然后第一次运行的时候再选择简体中文

界面是这样子的...

首先新建文件(Ctrl+N),然后键入代码(如上),然后保存,然后编译(F9),然后运行(F10),或者编译+运行(F11)

于是就会有传说中的小黑窗出现了

注意:这里编译的时候Dev-C++会帮你自动保存文件,很贴心,如果你在其他IDE出现了编译运行之后和代码不一致的情况,请记得保存 :)

Hello world是所有程序员的第一声啼哭,至此你的开发环境已准备完成。

B. 轻量安装困难路线: 编辑器+编译器

首先要确定你的电脑上已经安装了编译器(一般是没有的)

我们选择MinGW,点击右侧链接跳转:MinGW安装和使用

这个安装完之后你就可以用CMD+记事本编程啦!

顺便提一下安装Java的时候会有JDK和JRE两种概念,前者是JDK开发环境,相当于这里的编译器,后者是JAVA虚拟机,用来运行Java程序

或者你不想用记事本,你想用看起来更正常一点的东西比如Notepad++ / Vim / Emacs(事实上后两者在业界是神犇的标志,一般是Linux系统下的首选)

那么首先下载一个Notepad++,下载地址:点我即刻开始下载

然后你需要配置C++开发环境:Notepad++配置c++编译环境

由于这一条路线过于困难,能做到的人肯定自学能力都很强,所以我推荐大佬们自己百度或者来问我 :)

3. 继续学习建议

编程,不是坐而论道的地方,是实战的地方

  A. 做项目。如果你想做一个特别的礼物给你的小姐姐(别笑)或者想做一个随便什么东西,你只需要:坚定的决心+随时百度+开发环境

  事实上编程就是一个自学的过程,很多业界成功案例都是 有一个想法+边学边干 搞出来的,大家起点真的都没那么高,为了小姐姐加油吧!

  B. 刷题。此处为朴素无华的刷题网站:http://noi.openjudge.cn/

  当然你可以尝试网页设计的更好的网站比如 洛谷 (其实是面对竞赛选手)或者如果你英语不错的话我建议 Hackerrank (面向程序员,印度人开发的,但是确实很棒!)

  对你们要开始补以前欠下的债了(笑)

  坚持刷题,当你结束 1.1 ~ 1.13 之后,你的C语言水平就能够吊打大部分人了(甚至包括我因为我并没有做完)

  C. 善用搜索引擎

  如果对题目有任何疑惑随时百度... 然后... 程序员的日常就是在自己写的BUG里面找代码

  请经常输出中间值检测自己的代码到哪一步出现了问题... 或者来问我

4. C/C++之外

语言的话,有的人会选择Python,有的人选择Java,有的因为之前做公众号所以接触过一点Html5。其实这些语言真正值得注意的区别不在于语言的写法,而在于语言特性,可能会有什么教程说什么什么语言适合起步,我是觉得其实这些东西区别都不大,毕竟都是英语(误),我还是建议C/C++语言起步,因为我比较懂。因为这毕竟是真正接近底层的东西,学习C语言你可以接触很多计算机内部的东西。但其实你学哪一种都一样,毕竟我们虽然有学单词(相对比编程语言)的必要,但我们言论背后的逻辑(相对比编程中的算法逻辑)才是最重要也最复杂的东西。

如果要学习某些语言的话,一般你都要安装对应的编译器,同时注意Python的2.0和3.0有较大区别不大互相兼容,注意区分

学习各种各样的编程技能我推荐 慕课网 以及 哔哩哔哩弹幕网

这里再推荐一些比较好玩的东西:

A. C/C++语言的话有个库叫Qt库,可以让你用C/C++编写较为酷炫的图形界面

B. 安卓开发的话有个东西叫Android Studio

C. Python开发爬虫是个非常不错的选择~ 爬虫编程了解一下?(爬虫,自动运行用来爬取网上的数据,具体定义百度)

D. 各种开发引擎,比如Unity,虚幻4,不过那些东西体量太大了,我个人在研究Godot,一个开发2D和3D游戏的轻量级游戏引擎

E. Screeps!自己编写AI发展文明!使用Javascript作为编程语言,Steam售价¥65不过有免费的网页版可以玩教程

F. 如果你接触编程比较多的话应该考虑研究一下GitHub!无数程序员都在上面存代码和项目,内容资源均较为优质

G. 当年写过Minecraft的mod..... 有兴趣的同学了解一下

5. 后记

当年还没退役的时候就像写了... 被教练批评不务正业好为人师(笑

持续更新,如果你觉得这篇文章有任何不好/需要改进的地方,”面刺寡人者得上赏“,请告诉我!

原文地址:https://www.cnblogs.com/Chorolop/p/11279779.html

时间: 2024-10-28 19:15:21

为准大学生准备的C/C++编程起步教程的相关文章

Unity SurfaceShader 编程起步

Unity SurfaceShader 编程起步 在14年年初的时候,曾经给自己定下了今年要实现的三个目标,其中之一就是学会编写自己的Shader,并能够投入到实际的项目应用之中.现在,转眼间日历已经翻到了6月份,而自己关于Shader的学习,还停留在三天打鱼两天晒网的零碎学习状态,自己心里很是着急.平时的工作任务多,挤掉了自己的学习时间是一方面.但更重要的,还是因为自己没有制定一个稳步的计划,来监督自己利用一切可以利用的时间完成学习的内容,相反,自己做的太过随意了.所以,继续以博文的形式来督促

Vbs 脚本编程简明教程之一

-为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件事情就是打开 WORD ,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某 些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往

Net并行编程高级教程--Parallel

Net并行编程高级教程--Parallel 一直觉得自己对并发了解不够深入,特别是看了<代码整洁之道>觉得自己有必要好好学学并发编程,因为性能也是衡量代码整洁的一大标准.而且在<失控>这本书中也多次提到并发,不管是计算机还是生物都并发处理着各种事物.人真是奇怪,当你关注一个事情的时候,你会发现周围的事物中就常出现那个事情.所以好奇心驱使下学习并发.便有了此文. 一.理解硬件线程和软件线程 多核处理器带有一个以上的物理内核--物理内核是真正的独立处理单元,多个物理内核使得多条指令能够

PHP面向对象(OOP)编程完全教程

转自:http://blog.snsgou.com/post-41.html 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法. 我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境.和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数(如

进程和程序:编写shell——《Unix/Linux编程实践教程》读书笔记(第8章)

1.Unix shell的功能 shell是一个管理进程和运行程序的程序.所有常用的shell都有3个主要功能: (1)运行程序: (2)管理输入和输出 (3)可编程 shell同时也是带有变量和流程控制的编程语言. 2.Unix的进程模型 一个程序是存储在文件中的机器指令序列,一般它是由编译器将源代码编译成二进制格式的代码.运行一个程序意味着将这些机器指令序列载入内存然后让处理器(CPU)逐条执行.在Unix术语中,一个可执行程序是一些机器指令机器数据的序列.一个进程是程序运行时的内存空间和设

系统调用操作文件——《Unix/Linux编程实践教程》读书笔记

1.who命令通过读系统日志的内容显示当前已经登录的用户. 2.Unix系统把数据存放在文件中,可以通过以下系统调用操作文件: open(filename, how) creat(filename, mode) read(fd, buffer, amt) write(fd, buffer, amt) lseek(fd, distance, base) close(fd) 3.进程对文件的读/写都要通过文件描述符,文件描述符表示文件和进程之间的连接. 4.每次系统调用都会导致用户模式和内核模式的切

Python并发编程实例教程

有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执行,这个控制流被称为该进程的主线程.在任何给定的时刻,一个程序只做一件事情. 一个程序可以通过Python库函数中的os或subprocess模块创建新进程(例如os.fork()或

Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2G 8. 选择网络地址转换 9.设置IO控制器 10. 选择默认磁盘类型 11.创建一个新的虚拟磁盘 12.设置磁盘大小 13.选择路径保存虚拟磁盘 14. 完成虚拟机创建 15.设置虚拟机 16.选择opensuse镜像 17.开启虚拟机 18.虚拟机启动 19.安装opensuse 20.安装程

【读书笔记】.Net并行编程高级教程--Parallel

一直觉得自己对并发了解不够深入,特别是看了<代码整洁之道>觉得自己有必要好好学学并发编程,因为性能也是衡量代码整洁的一大标准.而且在<失控>这本书中也多次提到并发,不管是计算机还是生物都并发处理着各种事物.人真是奇怪,当你关注一个事情的时候,你会发现周围的事物中就常出现那个事情.所以好奇心驱使下学习并发.便有了此文. 一.理解硬件线程和软件线程 多核处理器带有一个以上的物理内核--物理内核是真正的独立处理单元,多个物理内核使得多条指令能够同时并行运行.硬件线程也称为逻辑内核,一个物