为准大学生准备的C/C++编程起步教程
Posted chorolop
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为准大学生准备的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
1 #include<cstdio> 2 int main() 3 printf("Hello,World!"); 4 return 0; 5
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int main() 5 cout << "Hello, World!"; 6 return 0; 7
1 print(‘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. 后记
当年还没退役的时候就像写了... 被教练批评不务正业好为人师(笑
持续更新,如果你觉得这篇文章有任何不好/需要改进的地方,”面刺寡人者得上赏“,请告诉我!
以上是关于为准大学生准备的C/C++编程起步教程的主要内容,如果未能解决你的问题,请参考以下文章
学生党必看!C/C++JavaPython的入门教程都在这里,能让你省下好几万的学费!
学生党必看!C/C++JavaPython的入门教程都在这里,能让你省下好几万的学费!