作为小白,C语言如何从零开始呢

写在前面

毫无疑问,大部分资深程序员的编程生涯都是从C语言开始的。依稀还记得大一时候自学C语言时的情景,当时刚上大一,为了追求心仪的妹子就在完全不懂得C语言是什么的情况下报名参加下学期的计算机二级(C语言)考试。这一行为果断引来了女神关注,效果颇佳。然而在仔细了解了C语言之后,才发现比想象中的困难了一些。再加上大二的学长们各种渲染C语言有多难学,于是心中开始打鼓。

大一的寒假,我从图书馆借来了三本C语言入门的书,开始自学。其中自然有大名鼎鼎的谭浩强老人家的书。记得当时安装Turb C就花了好几天的时间,几近崩溃边缘。后来终于用一个寒假的时间把基础知识都学会了,又做了几套计算机二级的卷子,连蒙带猜的通过了第二学期的考试。从此就算是和编程结了缘。

当年的妹子如今已经杳无音信,而C语言的代码我一写就写了十年。

这十年里,IDE从最简单的Turb C到VC 6.0再到VS2005、2008、2010、2013...开发方向从嵌入式到Windows开发再到Linux服务器开发,当年学习C语言那份热情依然还在。后来又在公司担任了新员工试用期项目培训的工作,每年都要把变量的指针和指针变量这样的东西反复讲。看着他们一个个独立完成了自己的试用期项目,博主成就感爆棚。

最近几年,一直坚持利用业余时间帮助网友解决C语言学习过程中的各种疑难问题。每天至少花费2小时时间回复邮件。随着来信越来越多,越发感到力不从心。况且大部分朋友的问题都是类似的,重复回答实在无趣,于是萌生了在简书做分享的念头。希望更多的朋友与我交流。

下面进入正题

  1. 教材选择

不想给大家一长串书名,那样也许就直接抹杀了你学习C语言的兴趣,这里重点推荐三本。

《C程序设计》谭浩强

C程序设计

很多大牛都不推荐谭浩强的《C语言程序设计》,但我不这么认为。这本书虽然讲的不那么到位但作为初学者从它入门还是挺合适的。最重要的是,网上大部分初级网友都是以它为基础进行交流的,有了它更容易融进各种论坛的讨论。

《C程序设计语言》 Brian W.Kernighan | Dennis M.Ritchie

C程序设计语言

这本书是C语言之父Dennis参与编写的,虽然不厚,但有些思想讲得比较到位。建议初学者学习。

《C Primer Plus》

C Primer Plus

这本书是非常经典的教材,每个知识点都介绍的非常到位。可以说这是入门级的选手的终结教材。如果想学好C语言并在后面有更大的发展,这本书必须要看。它能帮你打下坚固的程序设计基础。

学习好这本书之后,学校里的各种考试和小竞赛就不在话下了。接下来,你该开始自己的进阶之路了。

  1. IDE选择

如今,Turb C肯定是已经永远地退出历史舞台了,但初学者还是要选择一款合适的IDE才能方便的上手。

GCC + vim

很多学校的实验室都用的Linux系统,建议大家从vim开始编写最初的代码。

编写好后执行下面代码:

plaintext 复制代码
$ gcc -c main.c
$ gcc -o main main.o
$ ./main

Code::Blocks

这是一个轻量级的IDE,对于初学者而言,这是不二选择。

Code::Blocks

可以从这里下载你需要的版本

VS 2013

无疑这是C语言开发最牛X的工具,然而这里不建议初学者使用。由于Microsoft自己制定了很多自己关于开发的规则,初学者会发现课本上的代码原封不动的敲在上面却报出莫名其妙的错误。

VS2013

不过,当你拥有一定C语言基础的时候,VS的学习一定是必不可少的。

  1. 实践

编程是一门非常注重实践的学科,如果你不去亲自敲代码的话,那你永远也学不会。而博主也更愿意在邮件中针对具体的编程问题和大家讨论。

这里推荐两个适合初学者编程练习的在线系统。

北京大学 POJ | 杭州电子科技大学 ACM

已经入门的朋友可以前去练习,有什么问题我们一起讨论。

  1. C语言知识结构

C语言知识结构f

相关推荐
一楼的猫14 分钟前
AI写作合规技术方案:平台检测机制分析与规避策略
人工智能·学习·机器学习·ai写作
灯厂码农17 分钟前
C语言动态内存分配完全指南(malloc、calloc、realloc、free)
java·c语言·算法
wuyk5551 小时前
24. C 语言模块化:不是拆几个.c 文件那么简单
c语言·开发语言·stm32·单片机
qq_241585611 小时前
可用在中断中浮点数打印类似printf
c语言
四月天431 小时前
web安全-SSTI(服务器模板注入)
笔记·学习·web安全·网络安全
Tian_Hang2 小时前
Eclipse Ditto 物模型相关代码
java·运维·服务器·ide·eureka·eclipse
网络与设备以及操作系统学习使用者2 小时前
相对论核心原理详解
学习·深度优先
C语言小火车3 小时前
C++ 快速排序(Quick Sort)深度精讲:分治思想、Lomuto 分区法及三数取中优化,面试手撕必会
c语言·开发语言·c++·面试·排序算法·快速排序
aaaameliaaa4 小时前
进制练习题【找出只出现一次的数字、交换两个变量(不创建临时变量)、统计二进制中1的个数、打印整数二进制的奇数位和偶数位、求两个数二进制中不同位的个数】
c语言·数据结构·笔记·算法
灯厂码农4 小时前
C语言内存管理——内存对齐与共用体union
linux·服务器·c语言