问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

想在LINUX下学习C语言,该如何开始?

发布网友 发布时间:2022-04-21 08:30

我来回答

5个回答

热心网友 时间:2023-10-17 07:17

一、工具篇
“公欲善其事,必先利其器”。编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
  1、操作系统
  在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux操作系统,目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
  如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
  2、编译工具
  目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
  cc -o hello hello.c
  在unix shell环境中敲入上面的代码会将hello.c程序编译成可执行文件hello。
  3、make工具
  如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
  大部分UNIX和Linux程序都是通过运行make来编译的。
  make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中我们统一称之为 “makefile”),并执行各种操作来编译程序。
  4、调试工具
  最简单的调试工具:为你的程序添加打印语句,在你对程序的运行机制有了一定的了解后,你可以实用一些工具帮助你进行调试,当然你得学习一下这些工具得使用,如:dbx,gdb等。
  还有一些内存工具可以帮你查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等。
  5、其他工具

1)vi或vim
  Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
  当然在实际工作中,你可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
  提供一个中文的vim在线手册:http://vcd.gro.clinux.org/
  2)Secure shell/putty
一个支持ssh协议得客户端工具,多数情况下用来连接linux系统。

二、书籍篇
  “书是人类进步得阶梯”。学习一门新的知识,当然要选择几本适合自己得书籍,下面介绍一些我自己学习C语言使用过的书籍:

1.《C primer plus》
推荐理由:适合作为入门书和基本函数查询得参考资料。本书最新版为第五版,以ANSI C99为标准详细介绍了C语言。

2.《The C programming_Language》
推荐理由:C语言之父得作品权威性毋庸置疑。虽然书籍出版时间比较老,好像也没更新,不过仍不失为经典书籍,网上有这本书得英文电子版提供下载。

3.《C 专家编程》
推荐理由:本书可以帮助有一定经验的C程序员成为C编程方面的专家,最关键的是本书寓教于乐,让你充分享受编程的乐趣。

4.《C缺陷与陷阱》
推荐理由:书中所揭示的知识能帮助您绕过C语言自身得陷阱和缺陷,减少代码中许多常见的Bug。

5.《unix环境高级编程》
  推荐理由:既然是UNIX环境下C编程,就不得不说说UNIX编程书籍。
  Stevens先生的《unix环境高级编程》是我竭力推荐的,也是我的案头必备(如果对网络编程有兴趣的,可以学习一下Stevens先生的《UNIX网络编程》两卷,如果觉得还不过瘾,可以再看看《TCP/IP详解》三卷)。

6.《计算机编程艺术》
推荐理由:算法大师得呕心沥血之作。计划出版五卷书,目前好像已出版3卷。对算法有兴趣得可以研究一下。

三、过程篇
  1.学习C语法
  语法的学习对于一个具有编程底子的来说,就很轻松了;即使你以前没有学习过其他编程语言,我相信有2个星期,你也能轻松搞定。
  需要注意的是,不要太纠缠于语言的细节,比如:运算符优先级与结合性的问题等。

2.学习C标准库
  ANSI C库把函数分为不同的组,每个组都具有与之相关的头文件。C语言标准库相对于其他语言,比如C++,Java来说是非常短小精悍的,但首先应着重对以下库进行学习:
  ctype.h:字符处理
  math.h:数学库
  stdio.h:标准I/O库
  stdlib.h:通用工具库
  string.h:字符串处理
  time.h:时间和日期
  如果想了解完成的ANSI C库,你可以购买相关的书籍,这些书籍一般会详细介绍每个函数的用户和一些注意点;当然你也可以登陆http://www.dinkumware.com/manual ... amp;page=index.html获取ANSI C库详细信息。

3.攻克C的难点

1)C语言声明:
C语言的声明确实让我觉得恐怖,比较晦涩难懂,而且声明的形式和使用的形式还类似。比如如下的声明恐怕就连很多熟悉C多年的程序员也不是一眼就能看出来的:
char * const * (*next)();
那么有没有一种好的记忆方法或规则来搞清楚呢,好像没有,如果有的话也不是这样折磨人了。不过可以看看《C专家编程》第三章的内容,或许你会有所收获。
也只能多学多练了,所谓熟能生巧嘛,希望这个问题不要在你的心灵上留下阴影。
  2)数组与指针:
  数组与指针的关系,在标准中并没有作很详细的规定,而且好多C入门的书籍在这个问题上并没有给出很详细的说明,所以会给人造成很多误解。
  对于这个问题,你可以参考《C缺陷与陷阱》4.5节和《C专家编程》第4,9,10章,相信你这里面的内容搞透彻,以后就不会再被这个问题搞迷惑。
  3)指针与内存:
  如果你以后编写规模较大的程序,你可能发现这个问题可能会是你最大的烦恼,而且可能会是你消耗最多调试时间的事项。
  4)C版本的问题:
  你得特别小心该问题,最好不要在你的程序中混合使用不同版本C的特性,否则会给你带来很迷惑的问题。如果一定要用,你最好清楚自己在做什么。
  还有一些其他C中的难点和容易错误的地方,可以学习前人的一些经验。以下是一个c FAQ的链接地址,相信在这篇文档中有你需要的大部分问题的解决方法。
  http://c-faq-chn.sourceforge.net/
  4. UNIX环境编程
  学习了以上内容之后,我相信,你就可以进行unix环境编程了。不过你可能需要对操作系统理论有一点点的了解,这样学起来会比较轻松一些。
  Unix环境编程,你应该着重IO和进程两大块内容。
  《Unix环境高级编程》中对Unix环境编程有着非常详细且深入的论述,而且书中有大量实用性例子程序,不过可能得花上几个月得时间,好好啃一啃了。
在扎实掌握以上内容,不代表你得C语言学习支路已经完成,相反,才刚刚开始。以后你需要用学到得知识去解决大量不同实际问题,在不断得实践过程中,你会近一步加深对C的理解。有了以上基础之后,你会发现,在实践过程中需要的其他知识,你会非常快速的掌握。

热心网友 时间:2023-10-17 07:18

window,linux C都是一样的,如果不用系统函数,主要在于环境,工具的使用,windows用vs2010这种,点一个按钮编译,linux一般都自己gcc编译,熟悉linux常用命令,vi,emacs等编辑器,代码还是 一样写,多用几次就熟悉了。

热心网友 时间:2023-10-17 07:18

这教起来比较困难,还是去培训的地方直接培训培训,4个月就搞定,还可以直接工作,哥就是这么干的,不要迷恋哥,哥只是个传说

热心网友 时间:2023-10-17 07:19

LINUX的自学道路注定是坎坷的,你要有这个思想准备呀!我们是专业的LINUX培训机构,如果在学习过程中有不懂或不理解的地方,可以上我们的网站详细咨询,我们的老师真诚而热情,很乐意为你提供帮助。追问你们的网站是什么?

追答百度一下“凌阳教育”。

热心网友 时间:2023-10-17 07:19

没什么不同的。相对来说还是比较好学的。vi自己查。你也太小白了。太赖了。linux下学习编程对系统底层了解比较多。好好学吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
下载了优酷播放器iku免登录版,安装在没联网的电脑上。查看不了本地的... 播放FLV的几个问题在线等 劲舞团真的有那么好玩吗? 为什么别人说劲舞团是世界上最淫荡的游戏.. 劲舞团好玩吗?? 030221 1020 060414 2168 060417 这几组数是什么意思啊!有知道的大哥请... ...分签约短信服务-【广东农信】”是什么意思? 2168是什么意思爱情 事业单位面试成绩79分算好的吗 事业编面试成绩76分算高分吗 在Linux下如何学习C语言? 学习linux需要什么基础?需要了解C语言和C++吗? 学习linux C编程有什么用,感觉平时用得很少 linux下c应该怎么学,新手 在 Linux 下学习 C 语言有什么好处? linux c 学习方法 如何在linux学习C语言 记事本是Windows自带的一个文字编辑程序有强大的格式编辑能力。对不对? 苹果手机双卡怎么才能不漏接电话和短信 电脑开机出现chkdsk进不了系统怎么取消 电脑弹出损坏文件chkdsk 电脑显示运行chkdsk 电脑出现chkdsk这些要怎么处理?修复? 电脑显示运行Chkdsk软件,是怎么了,我应该怎么做 电脑出现请运行chkdsk怎么办视频 电脑提示请运行CHKDSK是什么 意思 怎么回事 我电脑上出现“请运行Chkdsk工具”是什么意思 电脑开机出现“chkdsk”进不了系统怎么取消? 文件或目录已损坏且无法读取,请运行chkdsk工具修复? 电脑的分类都有哪些? linuxc++教程linuxc教程 linux下的C语言学习 学习linux比较好还是学习C语言比较好 linux下的c编程怎样学习? 我想学习linux c/c++编程,如何入手? 嵌入式开发入门指南 Linux C编程一站式学习的C语言入门 multisim14示波器一栏不见了 multisim 10 中示波器在什么地方呢??? multisim图示仪视图在哪点开 怎么使用Multisim中的示波器? multisim14里的电路仿真怎么把波形图显示出来? multisim10中的示波器怎么用呢 哪接哪 怎么在multisim中查找示波器 Multisim2001 四通道示波器在哪 Multisim 9 四通道示波器在哪里??? 如何在Multisim中对示波器中的波形显示进行调试 multisim10.的示波器在哪? 在Multisim里怎么连接示波器呢? multisim13仿真软件中示波器怎么使用?是不是这样的