C语言学习之我见


首先每天的实践是必不可少的。而实践的题目则尽可能的有意思。就参考c-100吧,或者c语言的等级考试上面的题其实出的不错的你可以选任意一个你觉得能完成的每天去练习。除了写程序之外就是看程序,分析程序了。其实学习编程开始学是学语法呀,基本的流程控制,以及c语言的一些特殊特性(指针,宏等),这些运用熟悉之后则是你的逻辑思维能力,也就是你把你平时遇到的问题抽象出来,最终则是把它用程序给表达出来,而这个过程则是很漫长的,除了多编程,多分析代码之外没有其它方法了。当你感觉只要你理解的问题,你都能用程序去表达出来,或编出来,那么从编程本身来说你已经达到了一个很高的水平。你会感觉编程不过如此,你感觉编程只是你平时解决问题思路的另一种表现形式而已。这种感觉就对了,编程本来就是这样的。顺便提一句:学习数据结构及算法最能锻炼这种能力了。而再往上那就是要武装你的思维能力,算法能力,及知识的全面性了。当然这就需要看你以后要涉及的领域了。这时你编程思考的问题就不是怎么编码,而是一些设计上及怎么解决问题的思路等等这些东西了。我觉得如果学到此就已经超过了编程这一概念的范围了,也就是说慢慢的你发现编程仅仅是一个工具而已,更重要的是你脑袋瓜子里构建的那个知识体系以及思维能力等其它能力。
下面的只是计划,具体的还要看你对c的掌握情况。
其次要全面这就需要一个教材...很多了。
它里面的知识点已经足够全了,个人觉得c语言可以分为下几步来学:
首先是学习基本输入,输出,可以简单的输入输出一些图形,字符等,这个熟悉之后就为下面的学习打好了证明自己结果的基础(就好像你要了解一个大楼先得知道它的入口和出口吧)。
其实是基本的程序流程控制:主要是指循环和条件,能熟悉应用循环和条件是编程能力的最基础的东西,其实我们平时解决一般问题分解开来也是这判断和循环,呵呵。。
而且这部分是任何编程语言都相通的。因此这是一个核心。特别是for,while,if,以及结合break
continue以及return怎么控制程序流程的。等你编的多了,你会发现上面说的这些是用的最多的。
如果上面的程序流程控制会了,其实如果你的逻辑思维能力很强的话,学下面的东西就很容易了。


对于数组,我觉得没什么可讲的,只要记住不要越界就可以了。可以找一个排序的例子来试试。但要注意一点就是与字符串操作联系时有些麻烦,这个在指针时一起讲。


那么下面则是结构体,结构体这个东西其实可以理解它是一种我们生活当中的“打包”,比如:床上四套件,餐具n套件等。
比如一个中学生的基本信息有姓名,学号,性别,等,而定义一个结构体来维护这些信息是自然而然的事。也就是在c语言中结构体
是对一些数据的打包。你对数据结构应该很熟悉,所以这个对你来说应该很容易理解的。
OK了解了为结构体是用来做什么的,就可以看看书,搞清它的声明,引用等语法。但注意结构体在算法中的作用很大。
但这要结合指针,现在先不提,等说到指针再说。


一些常用的typedef 宏及它们区别
指针


一些更深入的东西:
从内存看c语言程序(数据,结构体,以联合体)。
 C中的内存分配和指针


以下部分为更深的,可以不用看,它直接与内存有关了。
一个C程序占用的内存可分为以下几类:
 (一)  栈
这是由编译器自动分配和释放的区域。主要存储函数的参数,函数的局部变量等。当一个函数开始执行时,该函数所需的实参,局部变量就推入栈中,该函数执行完毕后,之前进入栈中的参数和变量等也都出栈被释放掉。它的运行方式类似于数据结构中的栈。
 (二) 堆
这是由程序员控制分配和释放的区域,在C里,用malloc()函数分配的空间就存在于堆上。在堆上分配的空间不像栈一样在某个函数执行完毕就自动释放,而是一直存在于整个程序的运行期间。当然,如果你不手动释放(free()函数)这些空间,在程序运行结束后系统也会将之自动释放。对于小程序来说可能感觉不到影响的存在,但对于大程序,例如一个大型游戏,就会遇到内存不够用的问题了。
 (三) 全局区
C里的全局变量和静态变量存储在全局区。它们有点像堆上的空间,也是持续存在于程
序的整个运行期间,但不同的是,他们是由编译器自己控制分配和释放的。
 (四) 文字常量区
例如char *c = “123456”;则”123456”为文字常量,存放于文字常量区。也由编译器控制分配和释放。
 (五) 程序代码区
存放函数体的二进制代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值