首页

文章

C语言学习路线?

发布网友 发布时间:2022-03-01 05:48

我来回答

3个回答

热心网友 时间:2022-03-01 07:17

一,UNIX下C语言的学习路线。
工具篇
  “公欲善其事,必先利其器”。编程是一门实践性很强的工作,在以后的学习或工作中,将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
  (一)操作系统
  在UNIX或Linux系统中学习C很方便,所以在开始的学习旅程前请先选择一个UNIX或Linux操作系统。
  目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
  如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
  (二)编译工具
  目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
  cc -o hello hello.c
  在unix shell环境中敲入上面的代码会将hello.c程序编译成可执行文件hello。
  make 工具如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
  大部分UNIX和Linux程序都是通过运行make来编译的。make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中统一称之为 “makefile”),并执行各种操作来编译程序。
  (三)调试工具
  最简单的调试工具:为程序添加打印语句
  在对程序的运行机制有了一定的了解后,可以实用一些工具帮助进行调试,当然得学习一下这些工具得使用,如:dbx,gdb等。
  还有一些内存工具可以帮查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等
  (四) 其他工具
  1. vi或vim
  Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
  当然在实际工作中,可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
  2.netterm
  最著名的网络终端软件之一,可以使用它方便的连接到主机系统中。
  3.Secure shell
  一个支持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库,可以购买相关的书籍,这些书籍一般会详细介绍每个函数的用户和一些注意点;
  3.攻克C的难点
  C语言声明:
  C语言的声明确实觉得恐怖,比较晦涩难懂,而且声明的形式和使用的形式还类似。比如如下的声明恐怕就连很多熟悉C多年的程序员也不是一眼就能看出来的:
  char * const * (*next)();
  那么有没有一种好的记忆方法或规则来搞清楚呢,好像没有,如果有的话也不是这样折磨人了。不过可以看看《C专家编程》第三章的内容,或许会有所收获。
  也只能多学多练了,所谓熟能生巧嘛,希望这个问题不要在你的心灵上留下阴影。
  数组与指针:
  数组与指针的关系,在标准中并没有作很详细的规定,而且好多C入门的书籍在这个问题上并没有给出很详细的说明,所以会给人造成很多误解。
  对于这个问题,可以参考《C缺陷与陷阱》4.5节和《C专家编程》第4,9,10章,相信这里面的内容搞透彻,以后就不会再被这个问题搞迷惑。
  指针与内存:
  如果以后编写规模较大的程序,可能发现这个问题可能会是最大的烦恼,而且可能会是消耗最多调试时间的事项。
  C版本的问题:
  得特别小心该问题,最好不要的程序中混合使用不同版本C的特性,否则会带来很迷惑的问题。如果一定要用,最好清楚自己在做什么。
  4. UNIX环境编程
  学习了以上内容之后,就可以进行unix环境编程了。不过可能需要对操作系统理论有一点点的了解,这样学起来会比较轻松一些。
  Unix环境编程,应该着重IO和进程两大块内容。《Unix环境高级编程》中对Unix环境编程有着非常详细且深入的论述,而且书中有大量实用性例子程序,不过可能得花上几个月得时间,好好啃一啃了。
  在扎实掌握以上内容,不代表得C语言学习支路已经完成,相反,才刚刚开始。以后需要用学到得知识去解决大量不同实际问题,在不断得实践过程中,会近一步加深对C的理解。有了以上基础之后,会发现,在实践过程中需要的其他知识,会非常快速的掌握。
  二,Windows程序员的学习路线
  1.当然要熟悉下C语言了 入门可以选用潭浩强的 《C程序设计》(当然最好能读C Programming Language)特别要对其中的指针,结构体等东西一定要搞清楚了(要学好的很好至少要花费一个月时间) 为什么要从C开始呢:<1> C好学 <2> 大多数的操作系统核心部分是用C开发的 <3> C的效率高且语言成熟
  2.在1的基础之上一定要认真学习一下数据结构 对C++程序员来说良好的数据结构可以让一个程序员很轻松的完成程序设计 糟糕的数据结构可以把一个程序员累死 推荐书籍:严蔚敏的《数据结构(C语言版)》或北京大学的一本中C++版的数据结构 书中说到的每个主体在程序设计中都会用到 认真学好会对的以后的C++程序设计有太多的好处 (3个月时间)
  3.学好了2之后可以学习下《C++ PROGRAM DESIGN》这本书初步介绍了C++和如何使用C++写出Windows下的程序(要学好至少要花费3个月时间)
  4.在3的基础之上可以读一本叫《Windows 95 程序设计》(它的最新版本是Programming Windows)这是一相Windows程序设计的领域的不朽之作(3个月时间) 通过2和3的学习已经成为了一个可以设计Windows程序的程序员了 要想更好的设计Windows程序设计 一定要借助框架结构不可 为什么:框架结构可以加快我们程序设计的速度 虽然使用框架使得我们的程序的效率低了那么一点 但随着当今计算机的运算能力的提升,不会感觉到这一点点的性能损失的反而会因为你使用的框架结构而使你的程序设计加快了速度 使用框架结构才算一个真正的VC++程序员
  5.在4的基础之上可以看一些简单的MFC程序设计的书比如《Visual C++入门教程》之类的图书 这可以使你能写出一些带有通用控件的MFC程序 (1个月时间)
  6.在5的基础之上已经可以很快开发一个软件了 但不了解MFC框架运行机制是很不好的 了解MFC的运行机制可以使以后的MFC程序设计工作做的更好 推荐书籍侯杰的《深入浅出MFC》 但这本书真的不适合初学者当你有了一定的开发经验以后这本书对来说确实很好 若很熟悉Windows下的SDK程序设计并打算或已经开始使用MFC进行软件开发 那这本书对来说再好不过了 (2个月时间)
  7.在6的基础之上可以看下这本书《VC++技术内幕》由潘爱民译的 推荐看原著(3个月)
  8.在以上基础之上为了更好的使用VC++这个工具 推荐看一下《VC++6.0宝典》(3个月) 从开发工具的角度讲这本书写的很好
  9.为了更好的工作可以参考一下VC++程序设计百例
  10.之后可以看一下《Windows核心编程》 这本书很好的讲解了Windows的编程 对你写系统程序很有好处的 推荐看原版
  11.只了解其形不算真正的了解 之后还要认真的读一下Windows的内核源码 相信WRK 很容易找到的 可以配合《深入解析Windows操作系统》《Windows内核原理与实现》和《Windows内核情景分析》
  12.其它一些东东《COM原理》(潘爱民) OpenGL D3D VC的数据库编程 图形图像 音视频处理和网络都要有所了解和会使用
  13.要做到一个好的程序员一定要对驱动程序有所了解所以写一个文件驱动之类的东东是很有必要的
  14.经过以上各步的学习完全成为一个优秀的Windows程序员了(前提是每一步要学好)
  15.漏了一些重要的东东 编译原理 汇编及 组成原理 和设计模式等也是很重要的东东 只有学好了这些才能明白语言为什么要这样组织才能高效。

热心网友 时间:2022-03-01 08:35

1、环境篇(ubuntu 系统安装 及环境调试)
学习内容:ubuntu 虚拟机安装以及嵌入式开发环境搭建ubuntu 物理机及 u 盘版安装ubuntu 与 windos 等其它系统互访服务配置安装编辑器、编译器、调试器安装及使用
2、环境篇(Linux 常用命令)
Linux 日常高频率应用命令使用练习 、文件操作命令使用练习 、内容检索命令使用练习
压缩解压命令使用练习 、系统内部常用命令使用练习
3、嵌入式 C 语言编译调试技巧
调试文件产生方法介绍
单步、断点等调试方法介绍
调试过程中动态修改内存
4、语言基本语法结构
程序设计关键字分类讲解
各类进制间的分析以及转换
有符号以及无符号深度剖析
各种运算符介绍 数据存储类型的读写控制 不同数据类型间的自动以及强制类型转换
各种类型间的越界问题剖析
深度剖析二进制位运算
5、C 语言基本语句
选择控制语句
循环控制语句
控制语句相关关键字分析
人机交互程序设计
6、数组
数组的精确定义
数组元素严谨的初始化
深度剖析数组元素的读写过程
*数组的精确定义
*数组的应用操作
7、函数
函数的定义、声明、调用三要素
各类场景的函数定义
严谨的函数声明
函数的调用过程剖析
函数参数本质剖析
实参、形参详解
具体需求下的函数封装流程
8、变量存储
内存分区剖析
各类变量的定义形式
各类变量的作用范围
各类变量的生命周期
各类变量的存储区域
各类变量的注意事项
静态函数与全局函数的深度剖析
9、预处理指令
宏、宏函数的深度剖析
多场景的条件编译分析
标准的头文件编写
预处理在编译之前都在忙些啥
10、库的使用与制作
静态库工作原理
静态库制作流程
动态库工作原理
动态库制作流程
11、指针
指针与内存哪些事儿
指针的定义与使用
指针与基本类型变量的关系
指针与数组的关系
指针与函数的关系
指针与字符串的关系
指针与指针的关系
指针有多特殊
12、动态内存分配
内存的动态分配与释放
内存的多种动态分配方式
动态内存使用技巧
13、字符串处理技巧
字符串的纯手工处理技巧
字符串相关库函数使用方法
字符串与内存的关系
14、结构体的对象思维
结构体是怎样打包数据结构的
结构体与数组、指针、内存等相互结合
结构体实现位变量的定义
15、数据结构之链表操作
链表的逻辑思维
链表中的各个节点
双向链表咋比单向链表还简单
链表的增删查改等各项操作
链表还有更简单且高级的实现方式
16、文件操作
一切数据皆文件
文件的操作流程
文件的顺序读写
文件的随机读写
17、工程项目管理之Makefile

热心网友 时间:2022-03-01 10:10

应该巩固自己的C语言,比如使用C语言去实现一些功能性的代码,在可以熟练的使用了以后,可以考虑使用VC,通过对VC工具的使用,来逐渐学习C++,STL,MFC,WIN32。
谷歌浏览器怎么设置成中文_谷歌浏览器设置中文语言 【谷歌浏览器技巧】谷歌浏览器如何更改语言? 史上最全ETF全解 证券ETF是深市的吗 怎样把莲藕肉丸子做的好吃? 高三语文小说赏析小说形象分析与答题技巧 人物形象题答题技巧 借助什么分析小说的人物形象 脖子旁边疼是什么原因 在群里不是好友怎么把群里人建另一个群 蛇床子的药理作用 炒蛇床子和生蛇床子有什么区别 为什么把床头垫高点 为什么床头高点儿 为什么要给新生儿抬高床头 人脸识别打卡考勤机找哪家? 背后搞你的人什么心态 很皮的搞笑撩人句子高情商的撩人句子(82句) 恶搞爱情短信 床头挂什么财运最旺最好 床上放什么东西辟邪 道家床头挂什么画最好最旺 床头贴什么最好最旺道家 建设工程竣工后,是否必须取得《规划验收许可证》? 环评竣工验收 手机几年没用了开不了机怎么办 红烧啤酒鸡的家常做法大全怎么做好 双男主泰剧新剧推荐 2019泰剧《爱情理论》小受暗恋花心直男好友 液体卫生巾和普通卫生巾的区别是什么?液体卫生巾的优点 可水洗粘尘垫哪家好 电脑12g够用吗? 宝宝双侧肺炎病变严重吗 什么是洁净气体灭火器 2024年实用父亲节礼物推荐有哪些?(2300字选购指南) 40包速溶咖啡比对 作文请以“这样挺好”为题,写一篇记叙文或议论文,不少于800字。要求... 如何写好作文我就是这么好 惊魂未定什么意思?有什么典故? 安阳火车站到新师院北门的公交车有哪些? 安阳市公交车26从火车站发车多长时间到终点站 太仓汽车站去太仓乐遥浏河公墓坐几路公交 请问廉江市哪里有奥克斯手机专业维修店,急!! 梅赛德斯奔驰E350敞篷版的整体简介及其性能如何 员工出差前需要做什么准备工作? 用(祝愿自己生日快乐)写首藏头诗,希望有才华的人帮帮忙,谢谢了_百度... 请问做爱前吃什么药可以延长做爱时间? 我每天锻炼,然后吃什么,能延长我房事时间?现在两分钟,双方都苦恼。_百 ... 做爱前吃什么最能滋补身体 吃什么能让房事时间长些? 深入学习C语言的具体步骤 学习C语言基本的学习大纲顺序是什么? 请列举学习C语言的过程? 请提供学习C语言的流程? 学习C语言的步骤,详细点 学习c语言的步骤 学习C语言应遵循哪些步骤? 浙江绍兴有什么好玩的地方,有哪些特产? 软件设计师证书用处大还是软件工程学士学位用处大 网络工程师和软件工程师有什么区别?? 软件设计师考试高级和中级的试卷一样吗? 油笔画到壁纸上怎样才能去除掉 如何祛除壁纸上的油渍 怎样清除衣服上撒了很久的中性笔油 什么是Java集合API java 集合框架 软考的数据库系统工程师对于公务员有什么作用? 我的iPhone x手机近期发现飞行模式状态也能接,以前不能,谁能帮忙解答 怎么解除WORD的锁定! 为什么学java,学java到底能干什么 C语言学习顺序问题 初学C语言,从哪本书开始学习,顺序是怎样的? 求用C语言制作一个简单软件完整的学习流程 求助:C语言的学习过程 盐城有什么好吃的特产 谁知道盐城有什么好吃的特产a 盐城有什么特色小吃 盐城的特产有哪些啊?具体点哦 盐城的特产(吃、玩) 计算机等级与中级职称的关系 我计算机专科毕业,2002年通过软考初级程序员,想考个中级职称,不知我这种水平能考中级 数据库系统工程师 JAVA 预言特点主要有哪些? cisp有什么用? c语言用什么开发的? c语言的编译程序可以用什么语言来编写 准备学思科认证,学哪个方向好 思科的认证哪个方向就业最好,哪个方向证书最好考? 我是学习RIA开发的,想要考一个思科认证,CCIE的。思科认证好像分很多的方向?哪个更适合? 请问考过思科认证的人们!思科的认证是不是也分很多方向的?如果我要是想考!怎么准备考核啊? 安博亚威的思科认证的认证都有哪些方向?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com