C语言学习方法.docx

上传人:b****6 文档编号:3030440 上传时间:2022-11-17 格式:DOCX 页数:19 大小:41.44KB
下载 相关 举报
C语言学习方法.docx_第1页
第1页 / 共19页
C语言学习方法.docx_第2页
第2页 / 共19页
C语言学习方法.docx_第3页
第3页 / 共19页
C语言学习方法.docx_第4页
第4页 / 共19页
C语言学习方法.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言学习方法.docx

《C语言学习方法.docx》由会员分享,可在线阅读,更多相关《C语言学习方法.docx(19页珍藏版)》请在冰豆网上搜索。

C语言学习方法.docx

C语言学习方法

浅谈c语言学习方法

本人是一名windows程序写作员,使用的语言是c语言.其他语言了解一点点,但并不擅长.可能对于初学者来说,首先就是选择一门程序设计语言.当然,今天我将要说的不是这方面.每种语言都有它所擅长的领域与层面.当然对于其他非c语言我是一名门外汗,我也不会站在c语言的立场去谈论其他任何一门语言.好了,在开始进入正题之前,我想谈谈个人对c的一些看法:

c语言是一种早期的计算机语言,最初诞生目的是为了提供一种基于unix系统的工作语言.但是,后来却被越来越多的人发现它的优点与潜力.c本身比较接近底层,适合开发系统软件甚至是操作系统.我个人也认为它是界于高级语言与汇编语言之间的中级语言.c语言是一门结构化语言(我认为主要是指它的控制结构如:

ifif-elsewhilefor等等).c程序设计上有提到自顶向下,逐步深入.以函数为原子功能模块.对于大型的程序来说模块化是很重要的,有一句话说的很好优质的程序首先就是便与人们之间的相互讨论与交流,其次才是执行效率.当然我个人认为任何一名程序写作者,都应该养成一种特定的思维方式,以程序的思维方式来思考程序的实现.前提就是要足够的来了解计算机底层技术.要不我想就连学习都是很困难的,凡事都是一个思路的问题嘛.标准的来衡量,c应该算是高级语言阵营的一份子.可很多有c语言开发经验的程序写作者.通常亲切的称c为界于底级语言与高级语言之间的中级计算机语言.当然不是因为c比高级语言要差,之所以这么认为是因为c既具有高级语言的结构化与可理解性又具有低级语言的高效率.同时c的移植性也是非常不错的,大家应该知道,越是接近硬件,接近底层的语言就越加的依赖硬件环境,也就是我们所说的设备相关性.c这一点做的是非常棒的.说了这些,在从另一个角度去分析c语言.当然每种语言都有它自身的优缺点,c也一样.比如在现在高级语言与顶层技术的角度来看的话,c最大的缺陷就是data与算法的分离.举一个例子:

对于一个拥有几千行甚至上万行code的程序来说,如果修改data,比如我在structure中增加一个字段,可能为此我的整个程序都要改动,这使得程序的可重用性大大降低.开发周期也大大的延长.但是在底层的角度来看这也正是c的优点.我为什么要这么说呢?

我个人认为在求解与实现一个小问题的时候,我们可以写出一个通用的模块处理不同的data.当然比如某些经常用到的,基于数据结构的一些常用算法我们可以写出来在开发的时候我们可以直接把预先编写的模块插入到我们的程序中去,这不也是大大低了开发周期吗?

初学者完全可以根据自己的需求来编写一个自定义库.好了,说了这些,有些地方我理解错了,还请各位指出来,交流是很重要的,前提是要把自己的心态放平.下面我将谈论本问的重点,也就是如何来学习c语言,是给那些初学者读的.

正题部分:

有人可能会说:

学习还用你教啊,谁没上过学啊.其实我今天要说的只是,站在一个过来人的角度,来分析与解释学习c语言的过程中比较困难的地方.当然我个人也会对比较具体的问题进行解释(个人看法).我一直在强调个人看法,我是想让大家明白,对于同一个问题大家可能都很难达成统一的意见,希望批评的时候客气点就好喽!

初学者该看哪些书来入门:

在学习c语言之前,首先就要选择一本教材,对于初学者,我个人并不建议去读电子书籍,最好是买纸质书来学习.比如比较有名的c程序设计就很不错,尤其是第二版.我也看过,比较适合中国人来初学.整本书都在全面系统的讲解c的语法结构,构成c的语言元素包括:

数据类型,支持的运算符,标识符(是由程序员按照命名规则起的名字,用于变量名,函数名,宏名等等),关键字(编译系统用于实现c内部功能的词,比如:

转向goto和中断break等等)等.看完这本书你基本上可以写一些简单的小程序,当然是dos下的程序.如果你想在进一步深入学习c的话,可以看c陷阱与缺陷这本书.写这本书的作者是在bell工作对c是非常精通的,应该算是大师级的人物了.如果你暂时不想深入c的话,也没问题,因为此时你完全可以把c当作一种编程工具来使用,你要做的就是多写code来让自己熟悉c语言.经验是非常重要的,经验是检验真理的唯一方法.当然你不会纸上谈兵,如果你有过多

下面我为你推荐几本不错的关于c语言籍:

c编程规范

c语言大全第四版(个人感觉不错,里面有提及c标准方面的东西)

c和指针

thecprogramminglanguage(经典著作)

如果你要看电子书的话,以上几本书在google上很容易就可以找到.

关于c语言的初步理解:

对于初学者,会有太多的疑问,原因是你的知识面太小.现在我为你解释一些c相关的东西.目的是让你能够有一个大致清晰的方向,来给自己安排学习计划.专业的来说,我们是或将是一名程序员,程序员当然就是要开发程序了.对于软件开发方面我来解释下术语:

c,c++,asm,basic,java这些是计算机语言.计算机语言很多,我就不多说了.

visualc++,visualbasic,microsoft研发的开发环境,开发环境包括:

编译器,库函数(每种c语言编译器都支持标准库,同时它们也会扩展自己的库,所以很多比较以来库函数实现的程序员,在转向不同的开发环境的时候最初总是不使用的,会遇到很多问题),一些资源模板等等.visual就是可视的意思,后面的就是语言.visualc++支持c与c++2种语言,是根据文件的扩展名来判断采用哪种编译内核.

什么是面向对象与面向过程?

其实是2种完全不同的程序设计思想,c语言是面向过程语言,而c++是面向对象语言.在面向对象的语言中有类(class)这个东西.c中没有.对象是由类来派生的一个实例,相反类就象是一个模板.

什么是sdk?

sdk就是软件开发工具包(softwaredevelopmentkit).指的范围比较广,通俗的说,凡是能够与软件开发过程占上边的东西都属于.比如:

库文件,参考资料,接口函数,当然语言也应该属于.

ddk就是设备驱动程序开发工具包.

turboc:

这是一个比较精致的c语言编译器.

理论上来说任何一门语言都可以在任何一种操作系统上运行,前提是操作系统要支持.也就是我们所说的应用程序接口,比如

windowapi(applicationprogramminginterface),其实是microsoft内部定义的接口函数用于实现一些windows内部的功能.一些对象的描述术语,在不同平台上是不同的,比如:

windows下的调用,经常被称为呼叫,返回被称为传回.

什么是算法?

你最初只需要知道算法实际上就是对特定的data进行运算的一段代码而已.也可以认为在求解一道题目的时候,采取的方法与步骤的总称.对于基本的c程序来说,实际上就是由data与算法来组成的.

什么是数据结构?

如果要是系统的讲解,还需要一本书数据结构,简单的说:

是程序要处理的数据在内存中的存储与组织的方式,分为:

物理结构与逻辑结构.逻辑结构就是我们抽象化以后得到的大脑影象.

什么是函数库?

它们以文件的形式存储,是预先定义好的函数的集合,我们的程序可以直接调用.当然前提是要包含它的头文件(库函数的原型声明).这些函数是在静态连接期间组成到.exe文件中去的.windows又存在另一种库,叫做动态连接库(dll).

gui:

也就是图形用户界面,就是我们在windows上看到的,存在:

菜单栏,滚动条与显示区域的窗口.

gdi:

图形设备接口,从程序写作者的角度来看,其实gdi就是由上百个函数与数据形态和一些相关的数据结构所组成的.

学习c语言的全过程:

仔细想想,实际上学习c语言,最初是应该先学习c语言的基础语法.也就是学习c语言的组成部分.一部分一部分的向下学.知识要一点一点的巩固的.本人假设你学习c语言是看c程序设计.我认为你应该先把c程序设计仔细的看一便,这样你应该可以对整本书和c语言的整体组成结构有个大致的清晰了解.不要认为学习只是在看书,看一便就可以了.你应该学会记笔记,在记笔记的过程中,其实你就是在学习,从知识的分析,理解,归纳,到最后以自己的思维方式记下来,这整个过程就是把书中的知识抽象到你自己的脑袋里.个人感觉学习效果非常好,不懂就问,要多多与人交流,要多思考,遇到问题自己先多想想,实在找不到问题出在哪,在去请教别人,不要有不懂的地方就直接去问别人,那样对你没太大的好处.其实要学会给自己安排适合自己的学习计划,我大致来估计了一下,如果你每天能花4个小时安静的,用心去学习的话,30天之内你应该可以掌握c语言了.其实在整个学习过程中你大多数时间都在看书,而不是面对电脑.在调试你的代码之前,先在纸上把核心代码大致写出来,分析一下:

程序的组成模块(可以是一个函数或多个),由几个函数来实现,接口的封装.采用哪种数据结构更适合一些.关键在于算法.在你的最终程序发布之前,最好把你的代码行数减到最少.不要只想着把代码写多.过多的代码对程序来说是负担.你可以在internet上下载一个文件(c语言经典例题.chm),里面大致包含了上百个经典的例题.每一个例题都是c语言某部分的典型应用.花时间把这个文件中的所有例题代码研究一下,最好能自己把代码改善,以自己的方式来求解.以后你会发现你在写一些应用程序的时候经常会有一些算法.会涉及到我之前提到的例题.最后我认为你可以自己来写c语言标准函数,比如strcpy();strlen();strcat();最好不要过分依赖库函数.

c语言学习的难点:

现在应该是已经讲到一个重点的环节.很多网友都说学习c语言很难,我认为c中有些部分是比较复杂,难理解的.当然在你具有了丰富的开发经验以后,这以不在是问题了.下面我个人会对我认为学习c的时候比较难学的地方进行我自己的阐述,如果哪里不正确,还请各位指出:

指针的出现:

我想有很多初学者学习到指针那一章都感觉很难,下面我就以自己的想法来解释下指针这个特殊的数据类型,

基本变量大家可能并不难理解,因为基本变量其内部存储了同类型的常量,事实上指针也是变量,不过呢,这个变量和基本变量有点不一样,那你又问了:

是哪里不一样呢?

我告诉你,简单的来理解其实普通的变量内部存储了同类型的常量,而指针变量内部存储的则是同类型变量的首地址.这样你能够理解吗,是很简单的解释,但不失本质.事实就是这样的.如果你不理解同类型变量的首地址的话,我可以给你形象的来描述一下:

floatvariable;//声明一个单精度实型的变量

此时,编译器已经给variable分配了内存空间,结构如下:

__________

||1001

|---------

||1002

|---------

||1003

|---------

||1004

|---------

以上便是variable的内存结构了,16位下的float占用4个字节,内存地址是线性编码的,我们可以很容易的看出variable的首地址就是他第一个单元的地址1001,好的,继续向下看:

float*pointer=&variable;//声明一个指向variable的指针pointer

_________

|1001|这是pointer的内存结构

|_______|

我们的程序可以这样来执行:

variable=1.0;

直接给variable赋值,我们称为直接访问.

也可以这样执行:

*pointer=1.0;

也可以通过指针变量来赋值,前面的*是间接运算符号,意思是求pointer内部存储地址所标识的内存单元.也就是variabl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1