C语言从零开始(一)

简介: 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/C++可以来这个群,首先是三三零,中间是八五九,最后是七六六,里面有大量的学习资料可以下载。

《C Primer Plus》


C Primer Plus

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

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

2. IDE选择

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

GCC + vim

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

编写好后执行下面代码:

$ gcc -c main.c
$ gcc -o main main.o
$ ./main

Code::Blocks

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


Code::Blocks

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

VS 2013

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


VS2013

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

3. 实践

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

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

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

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

4. C语言知识结构


C语言知识结构


相关文章
|
7月前
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
141 0
|
C语言
入门学习C语言的一些建议
入门学习C语言的一些建议
|
10天前
|
存储 NoSQL 算法
【C语言】《C语言基础指南!》- 史上最全!
通过上述内容,你可以对 C语言 的基础知识有一个全面的了解。包括程序结构、数据类型、变量和常量、控制结构、函数、数组和字符串、结构体和联合、枚举和联合、预处理器指令、动态内存分配、文件操作、错误处理、编译器选项、调试和优化、C语言的标准库、编程技巧以及编程习惯等方面的详细讲解。希望这些内容能帮助你更好地理解和使用 C语言。
30 5
|
6月前
|
存储 机器学习/深度学习 编译器
C语言基础简单教程
C语言基础简单教程
|
6月前
|
存储 程序员 Go
|
6月前
|
C语言
|
7月前
|
存储 编译器 程序员
c语言从入门到实战——函数
C语言函数是一段可重复使用的功能代码,用于执行特定的任务。函数通常包括输入和输出,其输入是函数需要的参数,输出是返回值或输出参数。C语言中的函数定义包括函数名、返回类型、参数列表和函数体。 函数的定义通常放在程序的头部,而函数的实现则放在程序的主体部分。C语言中函数的定义和实现可以分别放在不同的文件中,通过函数声明来建立连接。 函数可以使用条件、循环、递归等程序设计技巧来完成各种任务。函数可以帮助我们编写更加清晰、模块化和易于维护的程序。
57 0
|
7月前
|
存储 编译器 程序员
c语言从入门到实战——数组
C语言数组是一种用来存储相同类型元素的数据结构,它由一组连续内存空间组成,并且每个元素的大小相同。这些数据按照一个固定的顺序排列。数组可以有一个或多个维度,每个维度的大小必须是正整数。
229 0
|
7月前
|
存储 算法 C语言
“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“
“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“