如何轻松学习C语言

既然了解了C语言对编程领域的重要性,那就应该学懂它。但是C语言偏向底层,各种使用方式都比较原始,因此学懂它也不是轻松一件事。但也有迹可循:

从这么几条线入手

变量---流程控制---函数---指针

数组---字符数组---字符串---结构体---链表

文件操作---多文件---库的使用

其他的可以通过这几条线带出来。

如:变量的申请可以引出栈中申请空间,堆中申请空间

如:结构体+指针,可以做节点,节点可以做链表,链表根据指针分布可以做:单向链表、双向链表、循环链表、队列。

如:库的使用有stdio.h这些默认写了,还有需要手工写的如:malloc.h,string.h,还有图形库,还有操作数据库的动态链接库。

学习C语言感觉零散,是因为缺少贯穿的主线,此其一;其二,是因为缺少客观世界道理的支撑,导致程序语法出现的莫名其妙。外行人看莫名其妙会感觉神奇,但是神奇意味着不懂,因此要学编程,不要再让它有神奇的感觉,否则就不懂了。

学习编程要有一种悟的精神,它跟佛学类似,都需要悟。不是背诵几个语法而沾沾自喜就算了事的,也不是期末高分,笔试机试都通过就宣告学有所成的。

它是一个持续研究的过程,一个反复训练不断提升的过程。当你在上层语言中的学习遇到了瓶颈,你需要回头来从底层找原因。否则像linux中的apache,nginx,sphinx,mysql源码编译等这些会让你晕头转向,这时候你很可能忽略这些看似复杂的东西其实都在C语言的编程过程中有影子和启发的。

如:让你源码编译,其实就是说那些复杂的源文件其实和你写的.c源文件一样,充其量就是你写的文件少,它写的文件多,所以多了编译顺序和编译规则,也就是那个叫Makefile的东西。

所以只要你还在或者想进入编程领域,C语言总会有影子,只有理解了它的来龙去脉,才对实际有意义。了解来龙去脉,这就是在说学习C语言的最佳学习方法:给一个不懂计算机的老太太解释为什么要有C语言,以及C语言是什么,能干什么,里面有什么内容等等。

那么衍生出来的具体学习方法就有且不限于:思考、记录总结和灵感、整理笔记。当你哪一天躺在床上闭目养神的时候头脑里能回顾出C语言的知识体系并能落实到程序,然后想讲什么就讲什么的时候,你才算是学活C语言了。

总结学习方法

1:按上面的几条线,构建出C语言的知识体系。

2:多思考,很多莫名其妙的问题先记录,然后试着去寻找答案,找那些起码能说服的了你的理由。

3:多记录灵感,灵感能让你的知识体系中的盲点有画龙点睛之效。

4:整理和精简笔记。笔记一开始会越来越多,后续就要不断的精简,让它越来越少,少到几页纸...

5:轻松的心态去学习,不要太功利化。一般功利化太重,基本上都学不好。

6:坚持,反复,再反复。学懂C语言不会一蹴而就,一蹴而就的那是背诵题目应付考试。

时间: 2024-10-29 02:49:30

如何轻松学习C语言的相关文章

轻松学习C语言编程的秘诀:总结+灵感

目前在准备一套C语言的学习教程,所以我这里就以C语言编程的学习来讲.注意,讲的是"轻松学习",那种不注重方法,拼命玩命的方式也有其效果,但不是我提倡的.我讲究的是在方式方法对头.适合你.减轻你学习负担和心里压力的前提下,才适当的抓紧时间. 因此,探索一种很好的学习方法就是我所研究的主要内容. 众所周知,学习C语言并非易事,要学好它更是难上加难.这和你期末考试背会几个题目的答案考上满分没多大关系,也就是说你考试满分也说明不了你学好.学精通了C语言.那么怎么才算学精通C语言?闭着眼睛对自己

如何轻松学习C语言编程!

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制). C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制. 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样.之所以说C++比C更先进,是因为" 设计这个概念已经被融入到C++之中

对大一新生开始学习C语言课程谈几点看法

大家好,首先祝贺大家进入了大学,迈入了大学的校门,也意味着开始了新的征程,希望大家能够有一个美好的大学四年. 先做下自我介绍,我叫李帅阳,(大家可以称呼我 李老师,或是班助,或是...)这是在邹欣老师的倡导下来担任你们学习C语言的助教,本学期将会与李光杰老师合作,非常荣幸能与各位一起度过这美好的一学期. 在本学期,我会竭尽全力为大家服务,希望能够帮助大家在C语言上获得更大的收获,并且能够在编程上找到乐趣. 对于C语言,想必各位都没有听过,但这是你们非常重要的课程,对于咱们专业,如果这门课程学得一

SpringMVC轻松学习-其他常用(四)

Spring MVC 3.0 深入 核心原理 1.      用户发送请求给服务器.url:user.do 2.      服务器收到请求.发现DispatchServlet可以处理.于是调用DispatchServlet. 3.      DispatchServlet内部,通过HandleMapping检查这个url有没有对应的Controller.如果有,则调用Controller. 4.      Controller开始执行. 5.      Controller执行完毕后,如果返回字

轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型

一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1)原始值 存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置. (2)引用值 存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处. 为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型,还是引用类型.要实现这一点,解释程序则需 尝试判断该值是否

轻松学习JavaScript十八:JavaScript之DOM简介

一DOM概述 DOM(文档对象模型)是HTML和XML的应用程序接口(API).DOM将把整个页面规划成由节点层级构成的文档. DOM描绘了一个层次化的节点树,运行开发人员添加,移除和修改页面的某一部分.HTML或XML页面的每个部分都 是一个节点的衍生物.通过DOM,可访问HTML文档的所有元素.当网页被加载时,浏览器会创建页面的文档对象模 型,DOM模型被构造为对象的树. DOM是W3C(万维网联盟)的标准.DOM定义了访问HTML和XML文档的标准."W3C 文档对象模型(DOM)是中立

转:从开源项目学习 C 语言基本的编码规则

从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项目中的每个开发者使用他自己的风格. 所有代码都保持一致风格的大型库,更容易让人理解. 有许多资源是关于能让人采取的更好的编码规则的,我们可以通过以下方式学到好的编码规则: 阅读书或杂志 浏览网站 与同事交流 参加培训 另一个更有趣的方法是通过研究一个成熟的知名开源项目来得知其开发者是怎样编写代码的.

轻松学习JavaScript八:JavaScript函数

函数是一组可以随时随地运行的语句,函数作为ECMAScript的核心是很重要的.函数是由事件驱动的或者当它被 调用时执行的可重复使用的代码块.也就是函数是定义一次但却可以调用或执行任意多次的一段JavaScript代码.函 数有时会有参数,即函数被调用时指定了值的局部变量.函数常常使用这些参数来计算一个返回值,这个值也成为函 数调用表达式的值. 一函数声明 函数对于任何语言来说都是一个核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方,任何时候 调用执行.JS中的函数使用functio

轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)

一面相对象继承机制 今天算是什么都没干,尽在了解面向对象三大特性之一的继承了,过去的学习的C++和C#都是正统的面向对象语 言,学习的时候也没有怎么深入了解过,只是简单的学习最基础的继承.下午在看继承机制的时候,看到一个很经典 的继承机制实例.这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆 形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种, 具有