自学c语言,有什么好的建议或方法吗?

news2025/7/19 14:27:47

不管背景如何,你都可能有以下4样技能有待提高。

读写能力

如果你平时使用IDE的话,尤其如此。不过大体来说我发现程序员略读的时候太多了,从而导致理解性阅读能力有些问题。他们将代码扫视一遍就觉得自己读懂了,其实不然。其他编程语言还提供了各种工具,从而避免让程序员直接撰写代码,所以一旦面对C这样的编程语言,他们就立马崩溃了。最简单的办法就是要理解每个人都有这样的问题,解决方案就是强迫自己慢下来,更加细致地去读写代码。一开始你也许会觉着很痛苦、很烦躁,那就增加自己休息的频率,最后你会觉得这其实也很容易做到。

关注细节

这方面没有人能做得好,这也是产生劣质软件的最大成因。其他编程语言会让不够专注的你蒙混过关,但C语言却要求你完全聚精会神,因为C语言直接和计算机打交道,而计算机又是极其挑剔的。在C的语境中没有“有点儿像”或是“差不多”这样的说法,所以你需要专注。反复检查你的工作。在证明正确之前,要先假设一切都可能是错的。

发现差异

用过其他编程语言的程序员有一个问题,就是他们的大脑已经被训练成可以发现那种语言中的差异,而不是C语言中的差异。当你在对比你的代码和标准答案时,你的视线会直接跳过那些你认为不重要或不熟悉的部分。我给你的解决办法是:强迫自己观察自己的错误。

规划和除错

我喜欢其他更简单的编程语言,因为我可以“胡搞乱来”。我把想法敲出来,然后就能直接在编译器里看到结果。这些语言可以让你很方便地尝试新的想法,但你有没有发现:如果你一直用“乱改直到能用”的方法写代码,到头来就是什么都不能用了。C语言对你要求比较高,因为它要求你先计划好要创建的东西。当然你也可以偶尔胡乱弄弄,但和其他编程语言相比,你需要在更早的阶段就开始认真做计划。在你写代码之前,我会教你如何规划程序的关键部分,希望这能同时使你成为一个更优秀的程序员。即使是很小的计划也能让你的后续工作更为顺利。

在学习C语言的过程中,你将被迫更早、更多地应对这些问题,所以学习C语言更能让你成为一名更好的程序员。你不能对自己写的东西思维不清,否则什么都不会做出来。C语言的优势是,作为一门简单的语言,你可以自己把它弄明白,因此如果你要学习机器的工作原理,并增强这些核心的编程技能的话,C语言是上佳的选择。

以上内容来自《“笨办法”学C语言》一书

入门C语言书籍推荐

C Primer Plus 第6版 中文版

 

本书采用以下写作策略。

  • 在介绍C语言细节的同时,讲解编程概念。本书假定读者为非专业的程序员。
  • 每次尽量用短小简单的示例演示一两个概念,学以致用是最有效的学习方式之一。
  • 当概念用文字较难解释时,则用图表演示以帮助读者理解。
  • C语言的主要特性总结在方框中,便于查找和复习。
  • 每章末尾设有复习题和编程练习,帮助读者测试和加深对C语言的理解。

为了获得最佳的学习效果,学习本书时,读者应尽量扮演一个积极的角色。不仅要仔细阅读程序示例,还要亲自动手录入程序并运行。C是一种可移植性很高的语言,但有时在你的系统中运行的结果和在我们的系统中运行的结果不同。经常改动程序的某些部分,运行后看看有什么效果。偶尔出现警告也不必理会,主要是看一下执行错误操作会出现什么状况。在学习的过程中应该多提出问题和多练习。用得越多,学的知识就越牢固。

全书共17章。第1章、第2章介绍了C语言编程的预备知识。第3章~第15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、第17章介绍C预处理器、C库和高级数据表示。本书以完整的程序为例,讲解C语言的知识要点和注意事项。每章末尾设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。

本书可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。

C Primer Plus 第6版 中文版习题解答

本书是畅销书《C Primer Plus(第6版)中文版》的配套习题答案,针对书中的复习题和编程练习,给出了解题思路和答案。

本书共分为17章,每一章的主题与《C Primer Plus(第6版)中文版》完全一致。每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数组链表【leetcode】

笔记:代码随想录数组概念存放在连续内存空间上相同类型数据的集合(内存地址、字符数组、下标)。特点数组元素不能删除,只能覆盖(因为数组元素在内存中是连续的)方法1.二分法条件:(1&…

10.Clickhouse 单机部署

Clickhouse 单机部署 注意事项: 下载地址:https://packages.clickhouse.com/选择stable目录下的安装包,分别是这几个文件名(下面安装用的是 21.9.6.24 版本):ClickHouse相关目录:1.命令目录 /usr/bin ll |grep clickhouse2.配置…

Windows安装RabbitMQ详细教程

一、RabbitMQ是什么?RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 ​ AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中…

FJWC2019 Day2 题解

T1 - 直径 思路 就类似下图的链接方法。 这其中每一条边权都是 111。 我们设以 222 为根的子树除去 222 有 aaa 个节点,以 333 为根的子树除去 333 有 bbb 个节点,以 444 为根的子树除去 444 有 ccc 个节点。 此时直径的数量就为 a⋅ba⋅cb⋅ca\cdot…

Day910.中台是什么 -SpringBoot与K8s云原生微服务实践

中台是什么 Hi,我是阿昌,今天学习记录的是关于中台是什么的内容。 近几年针对软件开发领域,中台,这词相信大家都不会陌生。 中台(Technology Middle Platform)是一种基于技术架构和业务架构的中间层&…

制造业数字化转型难在哪儿?

工作岗位的原因,接触过很多制造业的CIO,也组建过几个制造业CIO的社群,当然也或参与或旁观过不少制造企业数字化转型的案例。 但这篇我不列举案例,分享一些经验和事实! 为啥?我接下来说的话可能有点残酷&a…

目标跟踪中的卡尔曼滤波和匈牙利算法解读。

先解读Sort算法:Simple online and realtime tracking 论文地址 https://arxiv.org/abs/1602.00763 代码地址 https://github.com/abewley/sort https://github.com/YunYang1994/openwork/tree/master/sort SORT 流程简介: 整个流程如下图所示&#xf…

网络是怎么连接笔记(二)用电信号传输TCP/IP数据

文章目录介绍创建套接字连接服务器收发数据从服务器断开并删除套接字IP与以太网的包收发操作(待更新)UDP协议的收发操作(待更新)介绍 在了解了HTTP请求是如何产生的,以及网址是如何跳转到我们想要看到的页面&#xff…

普元ESO 逻辑流/页面流数据类型选择java--浏览转圈卡死

不知道什么时候开始的 前阵子在选择数据类型需要选择一个普元基本类型里没有的java类型的时候 它卡住了,虽然我对lj普元的容忍度较高,但是在等了五分钟以后还在那转我就忍不了了 在经历了重启eos 重启电脑 关闭所有软件运行eos后,最后忘了咋折腾的反正是整上这个类型了当时确…

Unity使用NatML的NatDevice功能调用外部摄像机

Unity使用NatML的NatDevice功能调用外部摄像机NatCamNatDevice广泛和轻量级在Unity中使用NatDevice导入NatDevice指定访问密钥运行摄像头预览示例测试结果NatCam 最开始在Unity中使用WebCamTexture获取外部摄像机的画面。后来发现WebCamTexture的功能过于简单,外部…

拥塞管理与拥塞避免

拥塞管理与拥塞避免背景来源产生情景队列技术FIFO:First In First OutRR:Round RobinWRR:Weight Round RobinPQ(Priority Queuing)CQ(Custom Queuing)WFQ(Weight Fair Queuing&#…

入托不焦虑 | 如何帮宝宝更好地融入托班?

上托班是教育重要的一环,是宝宝开始适应集体过程的起点,宝爸宝妈也是忧喜交加:高兴的是宝宝慢慢长大开始上学了;忧虑的是从没有离开家的宝宝会不会适应托班生活呢? 今天我们就来分享一下如何引导宝宝更快地适应园区生…

【Unity】程序集Assembly模块化开发

笔者按:使用Unity版本为2021.3LTS,与其他版本或有异同。请仅做参考 一、简述。 本文是笔者在学习使用Unity引擎的过程中,产学研的一个笔记。由笔者根据官方文档Unity User Manual 2021.3 (LTS)/脚本/Unity 架构/脚本编译/程序集定义相关部分结…

【Spring6】IoC容器之基于注解管理Bean

3.3、基于注解管理Bean(☆) 从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过…

Java基本数据类型变量自动提升、强制类型转换、String基本类型使用

文章目录基本数据类型变量自动提升特殊情况强制类型转换String基本类型使用基本数据类型变量自动提升 规则: 将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。 byte、short、char-->int-->…

HCIP---回顾HCIA

HCIA回顾: 抽象语言---编码 编码---二进制 二进制---电信号 处理电信号 OSI参考模型----OSI/RM (Open System Interconnect-----开放式系统互连) 应用层:为终端用户提供网络服务接口 表示层:提供数据格式转换服务 会话层&#xff1a…

基于深度学习的鸟类检测识别系统(含UI界面,Python代码)

摘要:鸟类识别是深度学习和机器视觉领域的一个热门应用,本文详细介绍基于YOLOv5的鸟类检测识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面。在界面中可以选择各种鸟类图片、视频以及开启摄像头进行检测识别…

基于同步整流技术的Buck开关电源设计方法

基于同步整流技术的Buck开关电源设计方法 典型的Buck电路 同步整流的Buck电路 摘要 B u c k 变换器作为一种基本的开关电源变换器,在电力变换场合具有广泛的应用。 为解决 B u c k 变换器工作在电感电流连续状态下,续流二极管关断时存在较大的反向电流…

重资产模式和物流网络将推动京东第四季度利润率增长

来源:猛兽财经 作者:猛兽财经 强劲的2022年第三季度财务业绩 2022年11月18日,京东(JD)公布了2022年第三季度财务业绩,净收入为2435亿元人民币,增长了11.4%。净服务收入为465亿元人民币&#xf…

【C++知识点】异常处理

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…