有关C语言学习的困惑:

2024年11月28日 09:24
有5个网友回答
网友(1):

先说一下,我也是计算机专业的,现在大二。虽然资历不深,但我接触的跟编程有关到东西却不少,这一点不是我瞎掰的!因为我从刚接触编程就喜欢上了程序设计,所以经常主动学习编程语言,比如到图书馆借书,动手写程序,还有上网搜资料和下载,再加上我在编程方面算是比较喜欢思考了,所以学东西也比较快,我不能说我学的多好,但最起码我感保证我花的时间比班里其他人多。你说你想做信息管理系统和五子棋之类到程序,其实大一下学期我们到认为也是课程设计,我当时选的是图书信息管理系统。本来在平时学习的时候也是写一些小到程序,都是百行以内的!突然让做这样一个比较大的程序时,也觉得束手无策,但后来我还是花了一两个月到时间做出来了,代码是1200多行,刚开始对自己做的很不满意,后来我又在暑假时间对我的那个程序做了很多改进,代码更简洁,功能也增加了很多,总共是2000多行,当我拿着自己写到程序时,我却有中感觉:如果这不是我写的,要我理解整个程序也难了!!!
其实呢!程序却是我自己写的!
所以,不要认为阅读代码的能力差你写代码到能力就差!因为你读的代码是别人用自己的思想写的,理解起来当然有点困难,但你自己写的代码却是用你自己的思想写的!
还有一句想奉告你的就是:再好的程序员甚至是黑客,也是一点一滴的基础慢慢累积起来的,他们不是神! !
针对你补充的问题:当然要继续学习C语言了!单从学科来讲,C语言已经快成为一门公共必修课了,像英语一样,现在几乎每个专业都要学了,至少我们学校是这样!而且你还是计算机专业的,你说要不要学?其次,C语言看似简单基础,实际用途很广,它最大的优点就是运行速率快,是除汇编以外的其他程序语言所不能及的!记住这一点!以后你在写程序时一定要尽可能发挥它的这一优势。单从运行速率上来说,C语言的运行速率相当于Java的接近20倍!所以,C语言通常被用来开发操作系统。Java虽然运行速率慢,但其实也不错,因为它具有跨平台性,语法更加规范,而且是面向对象的编程语言,我个人也比较喜欢,但我还是建议你先把C语言学好!因为你学好了C语言再学其它语言,包括C++和Java,都会觉得容易很多!希望你别再有疑问了,就做好现在的事情,学好C语言!至于以后该做什么,我相信到时你自然会明白的!

网友(2):

1.一个多月就开始看数据结构有些早了
2.我觉得现在你应该开始熟悉C的函数库了 一个库一个库的过
不要觉得没什么用 到时候现查就行。。。你把所有函数功能记住了 在见多了调用形式 基本上你就知道C是怎么编程的了~
3.我高中学的C语言 我这个年龄算的早了 那时候电脑远没有普及 大学的时候觉得老师讲的太没用
自己开始看API 也感觉很困难 然后回头把所有的库过了一遍 基本上看什么都没有问题了
4.别做程序员 呵呵 我的一点忠告 太累~

=====================================================
加入你想做程序员 C++是不二选择
不过不是现在 我觉得你还是时间太短~

网友(3):

C可以干什么?C什么都可以干,小到写一个数学公式,大到写操作系统!C语言是高级语言中比较低层的语言,像LINUX,WINDOWS这样的大型操作系统,ucos这些热门的实时操作系统都是用C语言夹杂汇编写成的!当然在中国写操作系统的太少,除非你想去微软这样的公司写WINDOWS系统开发!国内的C语言现在主要应用在嵌入式系统开发,驱动开发,网络开发等领域!嵌入式开发是中国软件行业中最热门前景最大的领域之一,像手机,GPC,汽车系统,DVD,液晶电视这些非常贴近我们生活的东西都是嵌入式系统,用C语言在上面做应用开发式非常简单的事情!想做嵌入式系统软件开发必须把C学得非常精通,这是毋庸置疑的!驱动开发是一门相当高深的技术,不仅要软硬皆同还有懂操作系统内核,在国内搞的人不多,但是搞这个的是绝对的技术核心人物,绝对的高薪!网络开发听起来好像没什么难度,现在大街上随便一招呼,自称网络工程师的一大堆,但是真正的网络工程师,真正的又有几个?C语言绝对是一个真正的网络工程师必须掌握的东西,原因就是因为这些操作系统,网络协议,驱动,十有八九都是C语言写成的,如果你不是一个绝对精通C语言的网络工程师,那么你跟大街上一招呼来一片的人差不多!真正的网络工程师很不简单,我有个朋友,以前是网络安全局的高级技术员,现在已经移民加拿大了!另外还有很多小领域都应用C语言,这里就不说了!
学C语言,必须精通数据结构,必须精通操作系统原理,而且至少要能看到汇编!否则你就永远是个初学者。C语言是一门十分灵活的语言,你现在不是要再去学哪一门语言,而是要把C语言彻底的搞清楚,不仅要看得懂代码,还要明白这些代码是怎么操作内存,怎么操作CPU的!真正的把C语言学好了,其他语言学起来都不在话下!如果你真的把C语言学好了,想往软件方面发展的话,我劝你在大学期间把以下几门课程彻底搞精通,
数据结构——不要怀疑,这是重点中的重点,核心中的核心
操作系统原理——你连操作系统原理都不懂,怎么去人家的操作系统上做开发?不懂原理的人永远只能停留在表面!
微机原理——这也是原理,但是它是硬件的原理,一个软件工程师技术发展到一定地步就必须跟硬件打交道,否则就无法更上一层楼
汇编语言——懂汇编的程序员跟不懂汇编的程序员就是两种档次的程序员
以上这四门课程是计算机软件开发的核心!哪程序员跟医生做个比喻,精通以上四门课程的就是主治医生,不懂的就相当于护士!如果你觉得这四门课程都学精通了,C语言也达到了相当高的水平了,你就可以去找操作系统内核的书去看了。推荐一本书《linux内核完全剖析》作者——赵炯。为什么要看LINUX内核?几点原因,LINUX是大型操作系统,在应用领域跟WINDOWS各占半壁江山,最重要的就是LINUX是开源系统,内核代码完全公开,而WINDOWS是收费的,内核代码是保密的,你想看也看不到!如果你能够把这本书很轻松的看懂,那么就证明你是真的学好了!如果你能完全掌握这本书的知识,而且能提出自己的意见,那么恭喜你,至少在国内,你已经成为软件行业的真正的高手了!这时候你再了解些硬件知识,你就可以去写驱动,甚至可以去写操作系统了!

网友(4):

,大到写操作系统!C语言是高级语言中比较低层的语言,像LINUX,WINDOWS这样的大型操作系统,ucos这些热门的实时操作系统都是用C语言夹杂汇编写成的!当然在中国写操作系统的太少,除非你想去微软这样的公司写WINDOWS系统开发!国内的C语言现在主要应用在嵌入式系统开发,驱动开发,网络开发等领域!嵌入式开发是中国软件行业中最热门前景最大的领域之一,像手机,GPC,汽车系统,DVD,液晶电视这些非常贴近我们生活的东西都是嵌入式系统,用C语言在上面做应用开发式非常简单的事情!想做嵌入式系统软件开发必须把C学得非常精通,这是毋庸置疑的!驱动开发是一门相当高深的技术,不仅要软硬皆同还有懂操作系统内核,在国内搞的人不多,但是搞这个的是绝对的技术核心人物,绝对的高薪!网络开发听起来好像没什么难度,现在大街上随便一招呼,自称网络工程师的一大堆,但是真正的网络工程师,真正的又有几个?C语言绝对是一个真正的网络工程师必须掌握的东西,原因就是因为这些操作系统,网络协议,驱动,十有八九都是C语言写成的,如果你不是一个绝对精通C语言的网络工程师,那么你跟大街上一招呼来一片的人差不多!真正的网络工程师很不简单,我有个朋友,以前是网络安全局的高级技术员,现在已经移民加拿大了!另外还有很多小领域都应用C语言,这里就不说了!
学C语言,必须精通数据结构,必须精通操作系统原理,而且至少要能看到汇编!否则你就永远是个初学者。C语言是一门十分灵活的语言,你现在不是要再去学哪一门语言,而是要把C语言彻底的搞清楚,不仅要看得懂代码,还要明白这些代码是怎么操作内存,怎么操作CPU的!真正的把C语言学好了,其他语言学起来都不在话下!如果你真的把C语言学好了,想往软件方面发展的话,我劝你在大学期间把以下几门课程彻底搞精通,
数据结构——不要怀疑,这是重点中的重点,核心中的核心
操作系统原理——你连操作系统原理都不懂,怎么去人家的操作系统上做开发?不懂原理的人永远只能停留在表面!
微机原理——这也是原理,但是它是硬件的原理,一个软件工程师技术发展到一定地步就必须跟硬件打交道,否则就无法更上一层楼
汇编语言——懂汇编的程序员跟不懂汇编的程序员就是两种档次的程序员
以上这四门课程是计算机软件开发的核心!哪程序员跟医生做个比喻,精通以上四门课程的就是主治医生,不懂的就相当于护士!如果你觉得这四门课程都学精通了,C语言也达到了相当高的水平了,你就可以去找操作系统内核的书去看了。推荐一本书《linux内核完全剖析》作者——赵炯。为什么要看LINUX内核?几点原因,LINUX是大型操作系统,在应用领域跟WINDOWS各占半壁江山,最重要的就是LINUX是开源系统,内核代码完全公开,而WINDOWS是收费的,内核代码是保密的,你想看也看不到!如果你能够把这本书很轻松的看懂,那么就证明你是真的学好了!如果你能完全掌握这本书的知识,而且能提出自己的意见,那么恭喜你,至少在国内,你已经成为软件行业的真正的高手了!这时候你再了解些硬件知识,你就可以去写驱动,甚至可以去写操作系统了!

网友(5):

C语言就是一把匕首而已,可以杀鸡,当然也可以将大象切成一块一块的用来做菜。但这并不是它的强项。如果来了个大象耳朵,很容易地就可以切来做菜了。
所以软件开发呢,即你提到的写“五子棋,图书馆管理系统”,这些都是软件工程的问题,是一个分工的问题。一个人也可以完成,但犹如用匕首切大象。对这头大象合理的划分,最终能完成。
语言呢,都是不同的工具。就我的经验而言,C++是把大刀,比C语言当然强大得多;但近身搏斗的时候,可能反而用不上;比如嵌入式开发。Java,是把轻灵的剑,比刀的用途要窄,但可能更方便。还有更多的语言,比如perl,等。
每种语言都有它的长处,我建议呢,你提到的三种语言都要学习一下,但选一门深入即可。并再学习一门脚本语言,比如perl, python等等。最终要做项目呢,需要合理地运用软件工程的知识,划分模块等。