如何学习c语言

C语言 - 编程入门网(24)(9)(5)
工作中,接触过很多想到学习c语言而又没有一点计算机基础的人。经常有人问”我没有一点基础,该怎么入门c语言啊”。看过很多初学者久久摸不到门路,每到这个时候,脑海中总会浮现一个问题:学习c语言真的就那么难吗?
&现在有好多人都比较迷茫,学习C++是不是需要先学习C语言?&
&&&&其实这个问题不难,就是直接了解两者的联系和区别就可以给出答案。下面我们来看看他俩到底有什么关系。
&1.从名字上看,两者似乎有很大关系
&&&&&C++,这个词在中国的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C
plus plus”,它是一种使用非常广泛的计算机编程语言。好像是在C的基础上加了又加好多东西而变成“C加加”的。&
&&&&1983年,贝尔实验室的Bjarne
Stroustrup在C语言基础上推出了C++。C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。&
&&&&在计算机科学中,C++仍被称为C语言的上层结构。它最后得名于C语言中的“++”操作符(其对变量的值进行递增)。而且在共同的命名约定中,使用“+”以表示增强的程序。Stroustrup说:“这个名字象征着源自于C语言变化的自然演进”。
&&&&&这样看来C语言和C++是有血缘关系的。&
C语言的先驱——B语言,被贝尔实验室开发。B语言是一个很快速的,容易维护的,而且对于从系统到应用开发是很好用的。设计这门语言的整个团队被马上解雇了,因为他们干了一件和电话通讯不相干的事情。最后这个项目转给了
Ritchie。他把这个语言变得不容易理解,很难维护,而且,只能用于系统方面的编程。而且,他还设计了一个指针系统,保让每一个程序都超过500行,并可以使用操作系统的指针。
1982 –&大家发现有97%
的C程序调用产生了“缓冲区溢出”问题。于是,C
程序员们开始意识到,就算是不必要也必需要初始化变量。然而,强制性的变量初始化这个明智的决定,很难影响了当时已经写成了的97%的C程序,所以结果什么也没有发生。&
操作系统出现了“错误指针”的问题数量开始戏剧性地增涨。&
1985 – 一系列的让C语言有面向对象能力的解决方法出现了,一个叫“C With
Classes”正准备商业化。然而,大家觉得名字“C With Classes”太清楚和容易被理解了,所以,最终
最近16级的小鲜肉们结束了为期两周的军训生活,正式开始了自己的的大学学习生活,不过刚一开始上课小鲜肉们就懵了,专业课好难啊!C语言听不懂啊!(&?&^&?&)&
&&&&&&&&别慌,学长教你几招帮你渡过难关。&
小鲜肉们遇到的问题可能就是这些:&&&&上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:&&&&首先,所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?&&&&其次,用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。&&&&最后,C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语
冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。
基本思想及举例说明
冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。下面以对
3& 2& 4& 1 进行冒泡排序说明。第一轮
排序过程3& 2& 4& 1 &
&(最初)2& 3& 4& 2&&&
(比较3和2,交换)2& 3& 4& 1&&&
(比较3和4,不交换)2& 3& 1& 4&&&
(比较4和1,交换)第一轮结束,最大的数4已经在最后面,因此第二轮排序只需要对前面三个数进行再比较。第二轮
排序过程2& 3& 1& 4
(第一轮排序结果)2& 3& 1&
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解。
基本思想及举例说明
选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序。在实现上,我们通常是先确定第i小的数所在的位置,然后,将其与第i个数进行交换。下面,以对
3& 2& 4& 1 进行选择排序说明排序过程,使用min_index
记录当前最小的数所在的位置。第1轮 排序过程
(寻找第1小的数所在的位置)3& 2& 4& 1(最初,
min_index=1)3& 2& 4& 1(3 & 2,
所以min_index=2)3& 2& 4& 1(2 & 4, 所以
min_index=2)3& 2& 4& 1(2 & 1, 所以
min_index=4, 这时候确定了第1小的数在位置4)1 &2& 4& 3
(第1轮结果,将3和1交换,也就是位置1和位置4交换)第2轮 排序过程
(寻找第2小的数所在的位置)1& 2& 4&
到目前为止,我们编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,对于只有几百行的小程序来说这或许可以接受,但对于动辄上万行的大中型程序,将所有代码都集中在一个源文件中简直是一场灾难,后续阅读和维护都将称为棘手的问题。在C语言中,我们可以将一个.c文件称为一个模块(Module);所谓模块化开发,是指一个程序包含了多个源文件(.c
文件)以及头文件(.h 文件)。C语言代码要经过编译和链接才能生成可执行程序:
编译是针对单个源文件(.c
文件)的,有多少个源文件就生成多少个目标文件,并且在生成过程中不受其他源文件的影响。也就是说,每个源文件都是独立编译的。
链接器的作用就是将这些目标文件拼装成一个可执行程序,并为代码(函数)和数据(变量、字符串等)分配好虚拟地址,这和搭积木的过程有点类似。
编译的原理比较复杂,涉及到大量的算法和正则表达式,学习成本较高,对模块化开发的帮助也不大,所以本专题着墨不多。
如果你的电脑上安装了QQ,你希望和好友聊天,会双击QQ图标,打开QQ软件,输入账号和密码,然后登录就可以了。
那么,QQ是怎么运行起来的呢?
隔行如隔山,初学编程往往不知道从何入手,非常迷茫,以下几个问题是我经常被问到的,总结出来分享给读者。
多久能学会编程?这是一个没有答案的问题。每个人投入的时间、学习效率和基础都不一样。如果你每天都拿出大把的时间来学习,那么两三个月就可以学会C/C++,不到半年时间就可以编写出一些软件。
 1.源程序的编译快速学习C语言的方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
快速学习C语言的方法
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢学习编程都先要学习c语言吗,谭浩强的那本c语言怎么学~
[问题点数:100分]
学习编程都先要学习c语言吗,谭浩强的那本c语言怎么学~
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年4月 扩充话题大版内专家分月排行榜第二2015年10月 扩充话题大版内专家分月排行榜第二2015年9月 扩充话题大版内专家分月排行榜第二
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
2015年9月 Linux/Unix社区大版内专家分月排行榜第二
2011年8月 总版技术专家分月排行榜第三
2012年10月 荣获微软MVP称号2011年10月 荣获微软MVP称号
匿名用户不能发表回复!|

我要回帖

 

随机推荐