什么是C语言?

news/2024/5/17 7:21:50/文章来源:https://blog.csdn.net/qq_29678157/article/details/127027273

什么是C语言?

文章目录

  • 什么是C语言?
    • 1.C语言的起源
    • 2.C语言的使用领域
    • 3. 为什么要学习C语言
    • 4.C语言的学习境界
    • 5.如何学习C语言
    • 6.学习C语言的推荐书籍


1.C语言的起源

C语言之父是丹尼斯·里奇丹尼斯·里奇(1941年9月9日-2011年10月12日),C语言之父,UNIX之父。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》。此书已翻译成多种语言,被誉为c语 …

请添加图片描述


2.C语言的使用领域

请添加图片描述


3. 为什么要学习C语言

简单来说C生万物,作为最老的编程语言,现在的大多语言底层实现都是基于C/C++的,学明白了C语言可以很快的上手其他语言,从而提高自己的学习效率和遇到问题的解决能力。

我现在说这些大家还不能好好体会,只有等你写过超过10000行代码开始,你才会能够理解我现在说的,尤其是学习非C/C++语言的朋友。


4.C语言的学习境界

请添加图片描述

我对于C语言的学习分层了5层:

第一层:得其零碎—就是懂了基本的语法,能够勉强写出基本的逻辑,比如能够完成学校的课设学生管理系统/图书管理系统

第二层:得其皮毛—就是懂了点内存和指针管理,能够基本使用它们–大部分人大学毕业大概能到达这个层次

第三层:得其实质–就是能够灵活使用指针管理内存,进而与Linux结合使用C—这需要庞大的学习和剖析源码,不停的调试才能达到

第四层:得其精华—就是能出神入化的使用C语言,能够模拟实现和改造底层代码接口,不再受限于C语言提供的接口

第五层:已炼化其精华—就是能够理解和记忆关于C语言早期设计的BUG和解决方案—只有参考白皮书,著作,测试来理解

说来惭愧,我学习C语言已经3年了,才刚刚到达第二层皮毛,弯弯绕绕的自学C语言,反反复复的汲取书本和实际编写代码的经验,才敢于重新正视自己曾经学习的错误,重写关于C语言学习的博客,希望大家可以点赞关注收藏我,大家一起互相学习


5.如何学习C语言

以我个人在学习上犯的错来说:

首先,你要抛弃学校的C语言课本,就那本谭浩强的红色书—原因:他有营养,但是其中对于知识的阐述过于简单,知识还有很多错误,对于C语言的正确学习存在误导

其次,你需要去博客园、stack overflows、CSDN去找一些大佬的学习笔记,就找那种看的人最多的,博主等级最高的,这些学习笔记的博客是他对于知识的高度浓缩,可以让你快速的入门C语言,入门C语言只需要7天左右,如果你跟着学校的谭浩强课程来,你入门的时间至少需要2个月,我没有开玩笑,我就是这样懵懵懂懂过来的

然后,你需要找一些网课,就二倍速看,然后跟着他敲代码(一定要敲代码,不然学不会的),边看网课,边看书(书籍推荐我放在后面了),然后标记出哪些才是网课和书都提及的,那些就是这本书的精华,标记它方便后面的复习。

最后,等网课看完了,代码写完了,就翻开书,认认真真的去剖析书上的知识,然后在去敲代码实现这些知识,你就达到了"学成"的层次了!


6.学习C语言的推荐书籍

C Primer Plus—C语言的全解书籍,偏向于实际代码的解决问题—不适合入门使用,适合学过一段时间C语言用来查漏补缺

C和指针—重点讲解C语言的核心-指针和内存管理—书虽然很薄,但是都是知识的高度浓缩

C陷阱与缺陷—重点讲解C语言早期设计的漏洞和BUG—让你对于C语言底层有清晰了解

C专家编程—重点讲解C语言的语言特性和C语言的编程技巧

高质量程序设计指南C/C++语言—主要讲解C/C++代码风格和企业解决方案—适合学习至少超过1年的去看,可以解决你未来企业编程的绝大数问题

ps:入门直接看网课和博主博客学习笔记,然后再看书,不然你完全看不懂,计算机的书都有难度

我的学习经验:大家不要指望一年就能学懂C语言,C语言是一个庞大的体系,是需要我们长久的学习的,我学习C语言已经三年了,仍旧觉得自己处在似懂非懂的状态,问底层或者一个编程问题的原因,我是不能解释的,其实很多人都这样,也正是如此才诞生了程序员的35岁危机


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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 简单命令 - cron 计划任务 、NTP

Linux 简单命令 - cron NTP cronNTP 一、cron 计划任务就是按照系统的时间(时刻、周期)执行指定的任务 系统服务: crond。 配置文件: /etc/crontab /var/spool/cron/用户名 配置记录格式: 分 时 日 月 周 任务操作命令 (用绝对路径、必要时…

集成学习详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、集成学习的产生原因与相关定义 1、产生原因 2、相关定义 (1)同质集成 (2&#xf…

第三章 学校与班级管理

01 学校组织与管理 02 班级与班集体 03 班主任与班主任工作 04 班级活动与班队活动 05 课外活动 02 班级与班集体 一、班级与班集体 二、班级管理 三、班级突发事件的处理 一、班级与班集体 (一)班级 了解 年龄、知识程度相近,有共同的学…

python学习—第一步—Python小白逆袭大神(第二天)

python进阶python语法继续学习数据结构数字字符串列表元组字典面向对象继承JSON异常处理try except finallyLinux命令作业来啦!问题python语法继续学习 数据结构 数字 Number类型用于存储数值。 1、数学运算math模块及常用函数 菜鸟教程 导入math 代码示例&#…

微信小程序事件和页面跳转

一、页面跳转 1.非TabBar页面 一个小程序拥有多个页面,我们通过wx.navigateTo进入一个新的页面 我们通过下边点击事件实现页面跳转进行代码实现及参考 wx.navigateBack()回退到上一个页面 wx.redirectTo(url)删除…

最新AWVS14.9.220913107 支持Windows使用教程(附下载地址)

主要内容:awvs14.9下载、awvs14.9使用教程、awvs14.9安装教程、awvs14.9批量扫描、awvs14.9用法、awvs最新版下载 使用方法 一键PJ 一键PJ则只需要在安装Acunetix软件后,运行pj工具即可 通用思路 修改hosts文件(C:\Windows\System32\driv…

15天深度复习JavaWeb的详细笔记(十一)——VUE、Element

文章目录demo11-VUE、Element1,VUE1.1 概述1.2 快速入门1.3 Vue 指令1.3.1 v-bind & v-model 指令1.3.2 v-on 指令1.3.3 条件判断指令1.3.4 v-for 指令1.4 生命周期2,Element2.1 快速入门2.2 Element 布局2.2.1 Layout 局部2.2.2 Container 布局容器…

Spring 注解

事务注解 使用注解 EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 Transactional 便可 * EnableTransactionManagement,会额外加载 4 个 bean * BeanFactoryTransactionAttributeSourceAdvisor 事务切面类 …

C# ASP.NET Web Core API (.NET 6.0)

目录 一、简介 二、创建项目 三、启动项目 四、开放访问权限 五、添加其他的API 结束 一、简介 ASP.NET Core Web API 是 ASP.NET Core MVC 的一个功能。ASP.NET Core MVC 包含了对 Web API 的支持。可以构建多种客户端的 HTTP 服务。ASP.NET Core Web API可用于在 .NET…

LeetCode 0328. 奇偶链表

【LetMeFly】328.奇偶链表 力扣题目链接:https://leetcode.cn/problems/odd-even-linked-list/ 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇…

8-Arm PEG-ACA,8-Arm PEG-Acrylamide,八臂-聚乙二醇-丙烯酰胺可用于自由基引发剂

一:产品描述 1、名称 英文: 8-Arm PEG-ACA 8-Arm PEG-Acrylamide 中文: 八臂-聚乙二醇-ACA 2、CAS编号:N/A 3、所属分类:Acrylate/Acrylamide PEG Multi-arm PEGs 4、分子量:可定制 5、质量控制&a…

C++之模拟实现<unordered_set/map>及位图和布隆过滤器

目录🌈前言🚁1、哈希表的改造🚂2、模拟实现的完整代码🚃3、哈希表的应用🚄3.1、位图的概念🚅3.2、位图的实现🚆3.3、位图完整代码🚉3.4、位图的应用🚇4、位图的变形&…

qt中的qmake.conf文件

qmake.conf文件是qt用于存放系统平台和编译器相关默认值的配置文件。qt为所支持的各种系统平台和对应编译器附加了相关的配置文件。其位置在QtInstallDIr/Qt5.12.0\5.12.0\msvc2015_64\mkspecs中。 windows台式机系统的默认配置​​​​​​这里的每一个文件夹代表一个qt所支…

医美企业如何玩转私域流量?

医美企业普遍面临的难点 广告投放成本高、客户到店率低、投入产出不成正比,是医美行业的“难隐之痛”。不少医美机构开始布局私域的精细化运营。但不是每个医美机构都能做好,有的机构做私域,复购翻几倍;也有的机构对私域理解还停…

比特币和以太坊抹去早些时候的收益,这就是为什么

随着美元指数 (DXY) 跃升至 20 的 112.87 年高点,加密市场出现了突然的自由落体。 最佳 cryptocurrencies 包括比特币(BTC)和以太坊(ETH)在内的一个小时内下跌超过2%。 ​比特币交易价格超过 19 万美元,但…

【HTML——奇幻撕布】(效果+代码)

效果展示 有强迫症的朋友可能会挺喜欢这个的 ~ 代码 下面即为全部源代码: 奇幻撕布.html <!doctype html> <html lang="en">

【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明

1. OAUTH2统一认证介绍 OAuth 2.0 是一个行业的标准授权协议。OAuth 2.0 专注于简化客户端开发人员&#xff0c;同时为 Web 应用程序&#xff0c;桌面应用程序&#xff0c;手机等各种设备接入提供特定的授权流程。 2. 传统登陆认证 传统登陆方式是在每个服务进行登陆认证&am…

mqtt报文逐条解析

文章目录1、背景说明2、mqtt报文解析3、剩余长度计算4、构建connect报文5、CONNACK报文示例6、心跳PING报文7、心跳回应PINGRESP报文8、断开连接DISCONNECT报文9、订阅请求SUBSCRIBE10、订阅请求确认SUBACK11、取消订阅UNSUBSCRIBE12、取消订阅确认UNSUBACK13、发布消息PUBLISH…

element-ui源码分析:剖析el-tree源码,看看实现一个树组件有多么复杂(1)

elment-ui中tree木块相关文件如下图&#xff1a; 下图梳理一下各个文件之间的引用关系&#xff08;箭头的方向表示使用&#xff09; 1 uti.js 1.1 markNodeData 标记节点 export const NODE_KEY $treeNodeId;export const markNodeData function(node, data) {if (!data ||…

java集合专题Set接口及HashSet/LinkedHashSet使用方法底层结构及源码分析

Set接口及常用方法 我们主要学习Set接口下的HashSet/TreeSet/LinkedHashSet这3个Set的实现类! 并且通过源码的方式学习其底层结构分析源码和他们的扩容方式! Set特点: 无序,保存顺序和取出顺序不一致不允许重复值, 可以保存null值! Set接口下的常用方法 Set接口实现了Collec…