你可以这样学习C语言

你可以这样学习C语言

声明:我已加入“维权骑士”(维权骑士_免费版权监测/版权保护/版权分发)的版权保护计划。


我在今日头条上开了一个专栏,专栏名字是“你可以这样学习C语言”。C语言算是一门比较难学的编程语言,好多小伙伴都有学习C语言的困惑。我在网上也看到了好多学习C语言的建议,于是我在想我也可以把我自己学习C语言的经验写出来与各位分享啊!于是就在今日头条上开了这么一个专栏,希望我的学习经验能够给更多学习C语言的朋友一些启发。

这个专栏我计划是更新8节,不过更到第四节的时候我感觉要超过8节了。我的专栏目前已经更新的章节和对应的说明如下:

一、C语言学习是要分阶段滴

学习C语言时一个系统的过程,不仅仅是学个语法就够了。我想了想学习C语言的阶段大概可以分为如下几个:

  1. 计算机基础知识的学习
  2. C语言语法的学习
  3. C程序编程练习
  4. 计算机其他学科的学习
  5. 工作业务的学习

上述也许只是学习C语言整个过程中的一部分,供参考。

这一章节文章在我的专栏地址是:C语言学习是要分阶段滴


二、你造吗?学习C语言,情商很重要

讲真,学习C语言有时候智商并不是主要因素,而情商,是的,情商往往会发挥重要作用,你还别真不信。如果你还是在校生,那么我来给你分析分析校园里那些影响你学习C语言情商的因素。

这一章节在我的专栏地址是:你造吗?学习C语言,情商很重要


三、学习C语言不妨试试这些技巧

学习C语言要善于使用一些技巧,这会使得你学习起来事半功倍。

3.1 发明自己的术语

这是一个学习C语言的小技巧:发明自己的术语。比如看下图中的这段C程序代码,这是把C语言中的二维数组与指针结合在一起的例子。

#include <stdio.h>
 
int main(void)
{
	int array[3][2] = { {11, 12}, {21, 22}, {31, 32} };
	int (*pArray)[2] = NULL, index1 = 0, index2 = 0;
	
	pArray = array;
	
	for(index1 = 0; index1 < 3; index1++)
	{
		printf("The %dth line\n", index1 + 1);
		for(index2 = 0; index2 < 2; index2++)
		{
			printf("%d ", *(*(pArray + index1) + index2) );
		}
		printf("\n");
	}
	
	return 0;
}

其中有这么一条语句:

*(*(pArray + index1) + index2)

它做了两次指针移动和两次解引用,也就是这个语句包含了四个操作,这也是许多小伙伴看到这里会犯晕的原因,不太理解每一次移动和解引用的含义。关于C语言指针,我后面会专门再写一个专栏,用我自己总结的"两己三他"的概念来剖析指针,有兴趣的小伙伴可以关注我啦!

当初我在学习这条语句时也晕过,后来自己理解透了之后就自己发明了“行指针”和“列指针”的概念,在做题以及编码时用这两个概念就比较轻松了。我的这篇头条专栏文章:

学习C语言不妨试试这些技巧——发明自己的术语

就来与你分享我是如何悟悟到“行指针”和“列指针”的概念的。我的这篇文章希望能告诉你,你也可以把自己对C语言某个知识点的理解总结为一个术语、一个概念,以此来帮助你做题、考试和编码。而且这个术语这个概念只有你自己能理解,别人是搞不懂的,也算是你的一个有力的竞争点吧。


3.2 联想相关学科

这是个学习C语言的小技巧:联想其他学科。不知你注意到没有,在C语言中有一些概念在其他学科也有出现,最典型的例子就是C语言的函数概念。

C语言有函数概念,数学中也有函数概念,它们之间是有某种相似性的。如果你中学时数学函数学的好,那么你再学习C语言函数概念时你会发现好多东西都是已经学过的。这部分章节文章如下:

学习C语言不妨试试这些技巧——联想相关学科

希望这篇文章能够给正在学习C语言的小伙伴们一些启发:利用之前在其他学科学过的知识点来学习C语言也许会减轻你的一些负担。除了函数外,C语言中的基本数据类型在数学中也有相关描述、数组概念在数据结构中也有相关描述、内存操作在操作系统中也有描述等。


3.3 巧做笔记和模仿例题

再来说说学习C语言的技巧:巧做笔记和模仿例题。

学习C语言免不了要做笔记。你面前放本书开始做笔记了,看到重点会画一根下划线,或者旁边简单注释下。如果是看的电子书,建议选择那种提供注释工具的阅读器。比如提供线、圈、框等注释工具的。

另外,学习C语言时一定要学会模仿书上的例题。刚开始可以看看书中的例题代码,做到理解它们。过几天回来就要凭借自己的理解自己写出书中例题代码了,如果在某个地方卡壳了咋办?思路,思路很重要。这个技巧链接如下:

学习C语言不妨试试这些技巧——巧做笔记和模仿例题

及时记录下自己的想法

3.4 我画,我画,我画画

当学到 C语言中比较烧脑的知识点或者代码时,脑子基本已经纠缠在一起了,别坐那儿空想了,赶紧拿出纸和笔在纸上画一画,理清里面的关系。这一招儿有时候真的特别好用。比如学到函数参数是“数据值传递”和“数据地址传递”的时候,有的小伙伴总是搞不清传递数据值和传递数据地址的区别,就可以在纸上画画。

举一个值传递和址传递的例子,这是让很多小伙伴们头晕的一个概念。 C程序代码如下:

这是一个涉及到值传递和址传递的C程序代码。如果你搞不清值传递和址传递的区别,完全可以拿出纸笔画一画你就会清楚了。这个技巧文章链接如下:

学习C语言不妨试试这些技巧——我画,我画,我画画

四、该练练C程序代码了

经过一段C语言的学习,是不是该写代码了? 学习C语言的最终目的是写代码。没有谁是自娱自乐地去学习C语言吧。
不过用C语言写代码也是有一个循序渐进的过程,不可能一上来就写出像Unix那样恢宏的系统。总体上C语言编程可以分为基础和进阶阶段。这部分的建议点击专栏链接进入阅读:

学习C语言该敲代码了——记住先基础再进阶

你觉得C语言编程难很正常,毕竟C语言是一门比较抽象的编程语言,刚开始编程总是有点难的,不过哪个大牛不是从菜鸟做起的呢?来吧,相信你自己,考试、考研、笔试、面试都不是问题。

五、学习C语言的终极目的

不管你学习C语言是为了考试、考研还是为了面试找工作,最终的目的只有一个:靠着它找一份工作混口饭吃!如果你仅仅是为了通过考试那是另外的话题了!

一旦走上工作岗位,你要学习的就不仅仅是C语言本身了,你还要深入学习计算机领域相关、工作业务相关等,有时候工作业务会比技术本身更重要。这部分建议请点击我的专栏链接进入阅读:

学习C语言最终目的——在工作中解决问题


洋洋洒洒写了这么多,小伙伴们知道了学习 C语言到应用 C语言是一个多么长久的过程,是一个在学习各方面编程知识过程中不断与自己浮躁的心理斗争的过程,是一个无数个泡面陪伴的过程,是一个满头乌黑亮丽的头发到“地中海”的过程,最终有一天成为大家口中的那个“大神”!

编辑于 2019-04-14

文章被以下专栏收录