当前位置: 首页 > article >正文

C 语言学习笔记

文章目录

  • 程序设计入门 --- C 语言
    • 第一周 程序设计与 C 语言
      • 1 计算机与编程语言:计算机怎么做事情的,编程语言是什么
        • 📒 1.1 计算机的普遍应用 —— 离了它,现代人可能不会“活”了
          • **🌐 科学计算:计算机的“最强大脑”时刻**
          • **📊 数据处理:现代社会的“数字管家”**
          • **🎨 辅助设计:从“手绘党”到“CAD大神”**
          • **🤖 过程控制:让机器“自己动”**
          • **🧠 人工智能:从“人工智障”到“真·AI”**
          • **🌐 网络应用:地球村“村民”的日常生活**
          • **🎮 娱乐应用:游戏党的“精神鸦片”**
          • **🏥 医疗健康:从“望闻问切”到“AI问诊”**
          • **🏭 工业生产:从“手工打造”到“黑灯工厂”**
          • **📌 本节总结**
        • **📒 1.2 计算机与人的交互 —— 从“鸡同鸭讲”到“心有灵犀”的进化史**
          • **🤔 交互是什么?人和计算机的“对话”艺术**
          • **💻 交互进化史:从“密码专家”到“读心术”**
          • **🎮 交互类型大赏:手残党 vs 技术流**
          • **🚀 当前趋势:多模态交互“全家桶”**
          • **📌 本节总结**
        • **📒 1.3 计算机的工作原理 —— 从“按按钮”到“秒懂你”的魔法揭秘**
          • **🔮 核心问题:计算机怎么“听懂”你的指令?**
          • **🧩 拆解计算机的“身体构造”**
          • **🚀 计算机的“工作流程”**
          • **🧠 计算机的“思维模式”:二进制**
          • **💡 关键原理:冯·诺依曼结构**
          • **📌 本节总结**
        • **📒 1.4 编程语言的作用 —— 人类与计算机的“翻译官”修炼手册**
          • **🤖 编程语言是什么?**
          • **💡 编程语言的三大核心作用**
            • **1. 抽象化:让计算机“听懂人话”**
            • **2. 效率提升:从“手搓代码”到“乐高式开发”**
            • **3. 跨平台与领域适配:一门语言走天下**
          • **🎮 编程语言的“隐藏技能”**
            • **1. 思维训练:计算思维养成记**
            • **2. 创意实现:从“脑洞”到“现实”**
            • **3. 职业赋能:从“打工人”到“技术大佬”**
          • **📌 本节总结**
      • 2 计算机的思维方式:重复是计算机最擅长的
        • **📒 2.1 计算机的思维方式 —— 从“机械执行”到“逻辑推理”的进化论**
          • **🤖 计算机的“底层逻辑”:二进制与逻辑门**
          • **🧠 算法思维:解决问题的“套路大全”**
          • **🚀 计算机的“超能力”:并行与批量处理**
          • **⚠️ 计算机的“局限性”:没有“常识”,只有“规则”**
          • **🔮 计算机思维的“进化”:从规则到学习**
          • **📌 本节总结**
        • **📒 2.2 解释执行与编译执行:程序员的“翻译官”之争**
          • **🤔 核心问题:代码怎么变成计算机能懂的“话”?**
          • **🔄 解释执行:逐行“翻译”,现场表演**
          • **⚡️ 编译执行:一次性“翻译”,电影上映**
          • **🆚 解释执行 vs 编译执行:一场没有胜负的战争**
          • **🌉 折中方案:JIT 编译**
          • **📌 本节总结**
      • 3 为什么学 C 语言:C 语言在工业界有重要地位,在很多领域无可替代
        • **📒3.1 C语言在工业界的地位:底层霸主与跨平台王者**
          • **🏆 工业界的“底层基建”:操作系统与嵌入式开发**
          • **🔧 工业控制的“瑞士军刀”:PLC 与机器人编程**
          • **🚀 高性能计算的“隐形冠军”**
          • **🔄 现代工业的“粘合剂”:跨语言协作**
          • **🛡️ 安全性升级:从“野蛮生长”到“防御编程”**
            • **📌 本节总结**
        • **📒3.2 语言的库对其重要性的影响:编程世界的“生态战争”**
          • **🔍 库:编程语言的“武器库”与“弹药”**
            • **🚀 1. 开发效率:用库“拼乐高”,不用“手搓零件”**
            • **🔧 2. 生态壁垒:得库者得天下**
            • **🌐 3. 适用场景:库决定语言的“能力边界”**
            • **⚠️ 4. 库的“双刃剑”效应**
          • **📌 本节总结**
      • 4 关于 C 语言和版本的历史
        • **📒4.1 C语言起源与发展:从UNIX内核到现代工业的编程语言传奇**
          • **🌱 起源:为UNIX而生的“技术革命”**
          • **📚 发展:从“K&R标准”到国际化演进**
          • **🔧 技术特性:高效与灵活的“双刃剑”**
          • **🏭 工业应用:现代科技的“隐形支柱”**
          • **🌍 影响与传承:从 C 到现代编程语言生态**
          • **📌 本节总结**
      • 5 环境安装:Visual C _2010_学习版_离线包(2025年全国计算机二级 C 语言考试官方指定版本)和 Microsoft Visual Studio
          • **⚠️ 重要前提**
          • **🔧 安装步骤**
        • **第一步:安装 Visual C++ 2010 学习版**
        • **第二步:安装 Microsoft Visual Studio(以VS 2022为例)**

程序设计入门 — C 语言

老师:“C语言是编程之母,学好了它,其他语言都是弟弟!”

我:“好好好,母上大人好!”(内心OS:母上大人怎么连个 Hello World 都写不利索?)

第一周 程序设计与 C 语言

本周目标:从编程小白进阶成“能写出 Hello World 但会被自己蠢哭”的菜鸟。

1 计算机与编程语言:计算机怎么做事情的,编程语言是什么

计算机就像一个绝对听话但超级笨的机器人

📒 1.1 计算机的普遍应用 —— 离了它,现代人可能不会“活”了
🌐 科学计算:计算机的“最强大脑”时刻
  • 应用场景:天气预报、火箭发射、基因测序……
  • 吐槽
    “每次看天气预报都怀疑人生,计算机算得准,但雨总爱挑我出门时下!不过想想,没有它,我们可能还在用‘乌龟壳占卜法’预测天气……”
📊 数据处理:现代社会的“数字管家”
  • 应用场景
    • 办公:Excel、Word、PPT “三件套”打工人必备。
    • 生活:网购记录、外卖地址、短视频推荐算法……
  • 崩溃瞬间
    “Excel公式写错,全公司数据乱成一锅粥,老板差点让我用算盘重新算!”
    “推荐算法比我还懂我?刷半小时短视频,满屏都是‘一秒教你月入十万’的广告!”
🎨 辅助设计:从“手绘党”到“CAD大神”
  • 应用场景
    • 建筑师用CAD画图纸,工程师用 SolidWorks 设计零件。
  • 吐槽
    “以前画图靠尺子和橡皮,现在靠鼠标和 Ctrl+Z(撤销)!不过,软件崩溃时,我画了一周的图可能连‘再见’都没说就消失了……”
🤖 过程控制:让机器“自己动”
  • 应用场景
    • 工厂自动化生产线、地铁信号系统、智能家居。
  • 崩溃瞬间
    “智能家居?智障家居还差不多!说好的‘语音控制空调’,结果它听成了‘播放《最炫民族风》’!”
    “工厂机器人罢工?维修费够我半年的工资了……”
🧠 人工智能:从“人工智障”到“真·AI”
  • 应用场景
    • 语音助手(Siri、小爱同学)、自动驾驶、人脸识别。
  • 吐槽
    “Siri,帮我定个闹钟!Siri:‘我不太明白你在说什么……’(行,你赢了)”
    “人脸识别失败?我妆前妆后差别有这么大吗?还是它根本没见过素颜的我?”
🌐 网络应用:地球村“村民”的日常生活
  • 应用场景
    • 社交媒体(微信、微博)、在线教育(网课)、远程办公(Zoom)。
  • 崩溃瞬间
    “网课卡成PPT,老师问我为什么不动,我:‘老师,我网卡了……’(实际在偷吃零食)”
    “微信消息发不出去,对方以为我高冷,其实我只是没流量了……”
🎮 娱乐应用:游戏党的“精神鸦片”
  • 应用场景
    • 电子游戏(LOL、原神)、VR/AR体验、流媒体(B站、抖音)。
  • 吐槽
    “游戏延迟460ms,队友问我为什么挂机,我:‘我在用意念操作!’(实际在摔鼠标)”
    “B站刷到凌晨三点,第二天顶着黑眼圈上课,老师:‘昨晚熬夜学习了吧?’(我:‘是的,老师……’)”
🏥 医疗健康:从“望闻问切”到“AI问诊”
  • 应用场景
    • 医疗影像分析(CT、MRI)、电子病历、远程手术。
  • 吐槽
    “AI问诊?我咳嗽两声,它说我得了‘绝症’,吓得我立马买了份保险!”
    “电子病历方便是方便,但医生字迹再潦草,也挡不住它打印出来工工整整……”
🏭 工业生产:从“手工打造”到“黑灯工厂”
  • 应用场景
    • 自动化生产线、工业机器人、质量检测。
  • 崩溃瞬间
    “工业机器人精度0.01mm,但操作失误一次,整个车间可能陪我‘加班’到天亮……”
    “质量检测系统太严格?我做的零件被它打了10次回炉重造,最后我发现是系统参数设错了……”
📌 本节总结
  1. 计算机已经渗透到生活的方方面面,从“高大上”的科研到“接地气”的娱乐。
  2. 它让生活更便捷,但也带来了新烦恼(比如AI的“人工智障”时刻)。
  3. 吐槽归吐槽,但离了它,现代人可能真的不会“活”了……
📒 1.2 计算机与人的交互 —— 从“鸡同鸭讲”到“心有灵犀”的进化史
🤔 交互是什么?人和计算机的“对话”艺术

人机交互(HCI)就是人跟计算机“聊天”的过程,只不过计算机是个“钢铁直男”,只会按固定套路回应你。

  • 核心三要素
    • :得会“说”计算机能听懂的话(比如点鼠标、喊“Siri”)。
    • 计算机:得把人的指令翻译成自己能执行的操作(比如你点“保存”,它就把文件存到硬盘)。
    • 交互方式:就是中间那层“翻译官”,比如键盘、屏幕、语音助手。

吐槽
“以前跟计算机对话像加密电报,现在像聊微信——但偶尔它还是听不懂人话!”

💻 交互进化史:从“密码专家”到“读心术”
  1. 远古时代:打孔卡片+命令行(1940s-1970s)
    • 操作方式:在卡片上打孔代表指令,或者敲代码(比如print "Hello")。
    • 体验:“感觉自己在给计算机发摩斯密码,错一个孔就全崩!”
  2. PC时代:图形界面+鼠标(1980s-1990s)
    • 操作方式:苹果Macintosh和微软Windows带火了“点图标、拖窗口”。
    • 体验:“终于不用背命令了!鼠标一划,世界都是我的~”
  3. 移动互联网时代:触控屏(2000s-2010s)
    • 操作方式:iPhone引领的“指哪打哪”,滑动、缩放全靠手。
    • 体验:“手机屏幕比我脸还干净,因为全是指纹……”
  4. AI时代:语音/手势/VR(现在)
    • 操作方式:喊“Siri”订外卖、挥挥手打游戏、戴VR头盔“穿越”。
    • 体验:“感觉自己是钢铁侠!但偶尔喊十遍‘Siri’它才理我……”

未来展望

  • 脑机接口:直接“意念操控”,比如用大脑想“播放周杰伦”,电脑秒懂。
  • 情感计算:计算机能识别你的情绪,你生气时它自动放《暖暖》。
🎮 交互类型大赏:手残党 vs 技术流
  1. 触控交互

    :手机、平板的“点滑缩放”。

    • 优势:直观,连我奶奶都会。
    • 崩溃瞬间:冬天戴手套无法解锁,只能对着屏幕哈气……
  2. 语音交互

    :Siri、小爱同学。

    • 优势:开车时喊“调低空调”超方便。
    • 崩溃瞬间:“Siri,播放《凉凉》!Siri:‘好的,正在播放《热热》……’”
  3. 手势交互

    :体感游戏、VR手势识别。

    • 优势:玩《节奏光剑》像在舞剑,燃脂又解压。
    • 崩溃瞬间:手势太复杂,像在跳“广场舞版黑客帝国”。
  4. 生物识别

    :指纹、人脸解锁。

    • 优势:再也不用记密码!
    • 崩溃瞬间:化妆后手机认不出我,仿佛被“渣机”抛弃……
🚀 当前趋势:多模态交互“全家桶”

现在流行**“混搭风”**,比如:

  • VR游戏:手柄+手势+语音,全方位沉浸。
  • 智能汽车:触控屏+语音+手势,开车时不用分心找按钮。
  • 智能家居:手机APP+语音+传感器,躺床上喊“关灯”就能睡。

吐槽
“以后交互方式可能比火锅蘸料还多,选择困难症要疯了!”

📌 本节总结
  1. 交互就是人和计算机的“对话”,从打孔卡片进化到“意念操控”。
  2. 现在流行“混搭交互”,未来可能“心有灵犀”——计算机比你妈还懂你。
  3. 吐槽归吐槽,但每次交互升级都让我感叹:“科技,真香!”
📒 1.3 计算机的工作原理 —— 从“按按钮”到“秒懂你”的魔法揭秘
🔮 核心问题:计算机怎么“听懂”你的指令?

想象一下,你对着计算机喊:“把这张照片P成漫画风!”

计算机的内心OS:“好嘞!但首先,我得拆解成以下步骤……”

🧩 拆解计算机的“身体构造”

计算机就像一个分工明确的团队,每个部件各司其职:

  1. CPU(中央处理器):
    • 角色:团队里的“超级大脑”,负责算数、逻辑判断和发号施令。
    • 特点:快但“健忘”(比如算完1+1=

相关文章:

C 语言学习笔记

文章目录 程序设计入门 --- C 语言第一周 程序设计与 C 语言1 计算机与编程语言:计算机怎么做事情的,编程语言是什么📒 1.1 计算机的普遍应用 —— 离了它,现代人可能不会“活”了**🌐 科学计算:计算机的“最强大脑”时刻****📊 数据处理:现代社会的“数字管家”***…...

【MySQL成神之路】MySQL函数总结

以下是MySQL函数的全面总结,包含概念说明和代码示例: 一、MySQL函数分类 1. 字符串函数 -- CONCAT:连接字符串 SELECT CONCAT(Hello, , World); -- 输出 Hello World -- SUBSTRING:截取子串 SELECT SUBSTRING(MySQL, 2, 3…...

线程池实战——数据库连接池

引言 作者在前面写了很多并发编程知识深度探索系列文章,反馈得知友友们收获颇丰,同时我也了解到友友们也有了对知识如何应用感到很模糊的问题。所以作者就打算写一个实战系列文章,让友友们切身感受一下怎么应用知识。话不多说,开…...

修改 vue-pdf 源码升级 pdfjs-dist 包, 以解决部分 pdf 文件显示花屏问题

文章目录 背景: 客户反馈有部分文件预览花屏 最终解决方案: 自己 fork vue-pdf 仓库, 修改 pdfjs-dist 版本, 升级到 3.3.122 (我是 vue2 项目 node 10 环境)修改源码中引用地址带有 pdfjs-dist/es5/ 的地方, 去掉 es5 , 另外如果还有报错自己搜一下 pdfjs-dist/ , 看看引用…...

基于moonshot模型的Dify大语言模型应用开发核心场景

基于moonshot模型的Dify大语言模型应用开发核心场景学习总结 一、Dify环境部署 1.Docker环境部署 这里使用vagrant部署,下载vagrant之后,vagrant up登陆,vagrant ssh,在vagrant 中使用 vagrant centos/7 init 快速创建虚拟机 安装…...

华为OD机试真题——字符串序列判定(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...

在Java的list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句的解决办法

说明 在 Java 的 list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句,因为它是一个终结操作(Terminal Operation),依赖于 Lambda 表达式或方法引用。 有些时…...

Java面向对象高级学习笔记

面向对象高级 -类变量 类变量-提出问题 提出问题的主要目的就是让大家思考解决之道,从而引出我要讲的知识点 说:有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?,编写程序解决。 类变量快速入门 思考: 如果,设计一个int co…...

LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略

LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略 目录 Mem0的简介 1、Mem0的特点 2、性能: Mem0的安装及使用方法 1、安装 2、基本用法(基本用法) Mem0的案例应用 Mem0的简介 Mem0(发音为“mem-ze…...

工商总局可视化模版-Echarts的纯HTML源码

概述 基于ECharts的工商总局数据可视化HTML模版,帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范,功能完善,适合各类工商监管场景使用。 主要内容 本套模版采用现代化设计风格,主要包含以下核心功能模块&…...

Spring AI 和 Elasticsearch 作为你的向量数据库

作者:来自 Elastic Josh Long, Philipp Krenn 及 Laura Trotta 使用 Spring AI 和 Elasticsearch 构建一个完整的 AI 应用程序。 Elasticsearch 原生集成了业界领先的生成式 AI 工具和服务提供商。查看我们关于超越 RAG 基础或使用 Elastic 向量数据库构建生产级应用…...

阿里云OSS Api工具类不使用sdk

本文工具实现了OSS简单的上传、下载、获取bucket列表功能,一个工具类搞定,不用集成oss sdk v1签名算法 v1算法(v1算法将在2025年9月停用,旧的key不受影响,新key必须用v4) v1签名工具类OssV1Signer.java …...

集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)

配置远程开发环境 第一步:Linux系统运行sshd服务 第二步:在vscode上安装Remote Deve I opment插件,其依赖插件会自动安装 第三步:配置远程Linux主机的信息 第四步:在vscode上开发远程连接Linux 第一步:…...

rabbitmq的使用介绍

一.队列工作模式介绍 1.WorkQueues模型 生产者直接把消息发送给队列,然后消费者订阅队列 特点: 消息不会重复, 分配给不同的消费者. 代码实现: 消费者代码: Component Slf4j public class SpringRabbitListener {RabbitListener(queues &q…...

前端的core-js是什么?有什么作用?

core-js 是前端生态中一个重要的 JavaScript 标准库 polyfill,它的主要作用是为不同浏览器环境提供 ECMAScript 最新特性 和 API 的兼容性支持。以下是其核心作用的详细解析: 一、core-js 是什么? 本质:一个模块化的 JavaScript …...

【Python 命名元祖】collections.namedtuple 学习指南

📚 collections.namedtuple 学习指南 命名元组(namedtuple)是 Python collections 模块中一种增强型元组,支持通过字段名访问元素,同时保持元组的内存效率和不可变性。 一、基础用法 1. 定义命名元组 from collectio…...

系统编程day04

一.进程的基本概念 一.定义 进程是一个程序执行的过程(也可以说是正在运行的程序),是系统分配资源的基本单位,由cpu对各个进程指挥调度,在单核cpu的情况下,各个进程可以通过一定规则在cpu上并发运行。 二.PCB块 1.PC…...

java 加密算法的简单使用

简介 加密算法,就是将原本的明文,通过一系列操作变成密文。在这里介绍一些常用的加密算法。在日常开发中,接触到了一些加密算法,例如,用户的隐私信息,诸如密码、手机号等,需要加密后存储到数据…...

Arduino Uno KY-037声音传感器实验

KY-037声音传感器实验 KY-037声音传感器实验1、 实验内容2、KY-037声音传感器介绍3、实验注意事项4、代码和实验现象 KY-037声音传感器实验 1、 实验内容 通过对KY-037声音传感器吹气,控制LED的打开和关闭,吹一下LED打开,在吹一下LED关闭。…...

机器学习---各算法比较

机器学习算法 线性回归 优点:简单;适用于大规模数据集。 缺点:无法处理非线性关系;对异常值敏感。 多项式回归 优点:捕捉特征和目标之间的非线性关系。 缺点:可能会过度拟合数据。 岭回归 优点&#…...

基于音频Transformer与动作单元的多模态情绪识别算法设计与实现(在RAVDESS数据集上的应用)

摘要:情感识别技术在医学、自动驾驶等多个领域的广泛应用,正吸引着研究界的持续关注。本研究提出了一种融合语音情感识别(SER)与面部情感识别(FER)的自动情绪识别系统。在SER方面,我们采用两种迁…...

Flink SQL 计算实时指标同比的实现方法

在 Flink SQL 中计算实时指标的同比(Year-on-Year),核心是通过时间窗口划分周期(如日、月、周),并关联当前周期与去年同期的指标值。以下是结合流数据处理特性的具体实现方法,包含数据准备、窗口聚合、历史数据关联等关键步骤。 一、同比的定义与场景 同比指当前周期指…...

什么是VR实景?有哪些高价值场景?

在数字化浪潮的推动下,虚拟现实技术正以前所未有的速度改变着我们的生活方式和工作模式。 其中,VR实景作为VR技术的一个重要应用场景,独特的沉浸感和交互性,在众多领域展现出应用潜力和高价值场景。什么是VR实景?VR实…...

基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强

基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强代码示例: 传统谱减法 function enhanced traditional_spectral_subtraction(noisy, fs, wlen, inc, NIS, a, b)% 参数说明:% noisy - 带…...

同一无线网络下的设备IP地址是否相同?

在家庭和办公网络普及的今天,许多人都会好奇:连接同一个Wi-Fi的设备是否共享相同的IP地址?这个问题看似简单,实则涉及多个角度。本文将为您揭示其中的技术奥秘。 用一个无线网IP地址一样吗?同一无线网络(如…...

第2周 PINN核心技术揭秘: 如何用神经网络求解偏微分方程

1. PDEs与传统数值方法回顾 (Review of PDEs & Traditional Numerical Methods) 1.1 什么是偏微分方程 (Partial Differential Equations, PDEs)? 偏微分方程是描述自然界和工程领域中各种物理现象(如热量传播、流体流动、波的振动、电磁场分布等)的基本数学语言。 1.…...

【C语言】习题练手套餐 2

每日习题分享。 字符串函数的运用 首先回顾一下字符串函数。 字符串长度 strlen(const char *s);功能:计算字符串的长度,不包含终止符\0。 字符串连接 char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, si…...

[项目总结] 基于Docker与Nginx对项目进行部署

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

神经正切核推导(2)

对神经正切核的理解和推导(1)-CSDN博客 这篇文章包括很多概念的理解 声明: 本篇文章来自于Neural Tangent Kernel (NTK)基础推导 - Gearlesskai - 博客园 旨在对上述推导过程进行再推导与理解 手写推导部分与其他颜…...

Python模型优化技巧

在机器学习与数据分析领域,模型优化是提升预测准确性、缩短训练时间、降低资源消耗的核心环节。本文结合实战经验,从数据预处理、特征工程、模型调优、代码优化到部署监控,系统梳理Python模型优化的关键技巧,助你打造高效能模型。…...