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

【速通C语言(纯小白版)】第一部分:准备工作

1 谁适合阅读本文?

本系列力求用最简单,最容易理解的语言(我自己认为的)给读者分享有关C语言的相关知识,所以即便是对编程毫无概念的朋友也可以阅读本文。

您可能需要的前置知识和技能有:

  • 高中数学:简单的加减乘除(也许初中数学知识也足够了?)
  • 使用浏览器检索信息和安装软件
  • 计算机的基本知识(不是必须的)

有了上述知识和技能,相信您一定能够学习完本系列内容!让我们一起踏上轻松愉快的C语言之旅。

2 什么是C语言?

我想这个问题不需要我来做什么总结,对吧?您只需要打开浏览器(也许是Edge或者Chrome)搜索:“什么是C语言?”,就能得到以下的回答。

C语言是一种通用的编程语言,由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代早期于贝尔实验室开发。它是一种过程式语言,以其高效性、灵活性和对底层硬件的控制能力而闻名。C语言是许多现代编程语言的基础,包括C++、C#、Java和JavaScript等。C语言的广泛应用使其成为计算机科学和工程领域中非常重要的语言之一。

多么准确和正式的回答!不过我要告诉您,您现在需要记住的是:C语言是一门高级语言

扩展知识:自然语言、高级语言和机器语言

我们人类平常说话的语言叫做自然语言,如汉语,英语等,并且我们知道,计算机是一种机器,计算机使用的语言叫做机器语言。我想,您应该不会直接用汉语或者英语对计算机说:请帮我查找一下什么是C语言并告诉我。(不过现在有语音助手,确实可以做到这件事情。)我这里的意思是,计算机作为机器,是不能直接听懂我们人类说的自然语言(汉语或者英语等),它所能接受的语言是机器语言。那么我们该如何告诉计算机让它帮我们做一些事情呢?

计算机科学家们冥思苦想,说我们为什么不发明一门语言,把我们所说的自然语言“翻译”成计算机能够听懂的机器语言,问题不久解决了吗?bingo!这个时候高级语言就诞生了。

读者朋友可能会因为高级语言这个词,觉得它是一种高大上的语言,非常晦涩难懂,但是这里的“高级”只是相对于“低级”而言的。我们可以用一张图来说明。

图1:自然语言、高级语言和机器语言。
图1:自然语言、高级语言和机器语言。
“低级”指的是机器语言,意思是更加偏向于,偏向于硬件设备(底层)的语言,而高级语言中的“高级”,意思是更加偏向于编程人员思维(上层)的语言,并没有优劣之分,只是展示出了一种层级关系。

3 开发环境和工具的选择

3.1 编译器

学习一门编程语言,开发环境是必不可少的,选择一个令人舒适的开发环境会让您的学习过程事半功倍。您可能会听说过一些非常出名的编译器,如Visual Studio,Code::Blocks,这些集成式的环境可以非常高效地开发工程。但是我觉得,作为初学者,最合适的开发环境必须具备容易获得和上手的特点。因此我推荐您使用网页端的在线编译器。如:

  • 菜鸟在线工具
  • Json.cn中文网

本系列也将使用网页端在线编辑器。

3.2 一些辅助工具

我将在这里推荐一些工具,它们可能会帮助您更好地学习。

  • 大模型工具。它可以帮助您更好地理解代码和知识。鉴于使用ChatGPT可能需要一些特殊的方法,您可以使用Kimi等替换,它们同样非常有效。
  • 一些视频网站,如哔哩哔哩等。您可以在上面检索对应的视频进行学习。

4 参考资料

这些资料可以帮助您更好地学习C语言,包含电子书和视频等。

  • 翁恺老师的C语言程序设计
  • 王道训练营-C语言教程
  • 菜鸟教程-C教程
  • 等待补充…

5 总结

本文介绍了四个方面的内容:

  1. 适合本系列的读者;
  2. C语言的简单介绍,以及什么是自然语言,高级语言和机器语言;
  3. 选择开发环境和工具,推荐使用网页在线编辑器;
  4. 一些有用的资料。

有了这些准备工作,相信您已经有了足够的准备迎接新的挑战!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • microsoft edge怎么关闭安全搜索
  • 【ubutnu18.04】k8s 部署4: worker节点配置1.31.0和containerd 1.7.20
  • Golang | Leetcode Golang题解之第338题比特位计数
  • 【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(四)
  • 如何将CSDN文章导出为pdf文件
  • 【数据结构-哈希前缀】力扣2845. 统计趣味子数组的数目
  • 多线程锁机制面试
  • 素数与最大公约数GCD:
  • 基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf
  • 技术速递|Python in Visual Studio Code 2024年8月发布
  • Node.js版本管理工具之NVM
  • C#关于多线程的线程问题
  • Vue:从入门到放弃
  • 智慧水务项目(七)vscode 远程连接ubuntu 20.04 服务器,调试pyscada,踩坑多多
  • 回归预测|基于鲸鱼优化支持向量机结合Adaboost集成的数据回归预测Matlab程序 多特征输入单输出 效果非常不错!WOA-SVM-Adaboost
  • JAVA 学习IO流
  • JavaScript新鲜事·第5期
  • js作用域和this的理解
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Netty源码解析1-Buffer
  • nodejs:开发并发布一个nodejs包
  • React中的“虫洞”——Context
  • SpiderData 2019年2月16日 DApp数据排行榜
  • STAR法则
  • win10下安装mysql5.7
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 包装类对象
  • 聊一聊前端的监控
  • 模型微调
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 在Unity中实现一个简单的消息管理器
  • MPAndroidChart 教程:Y轴 YAxis
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • # 飞书APP集成平台-数字化落地
  • ( 10 )MySQL中的外键
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (35)远程识别(又称无人机识别)(二)
  • (AngularJS)Angular 控制器之间通信初探
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (笔记)M1使用hombrew安装qemu
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (接口封装)
  • (转)3D模板阴影原理
  • (转)visual stdio 书签功能介绍
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .bat文件调用java类的main方法
  • .NET 8.0 发布到 IIS
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET成年了,然后呢?
  • .NET委托:一个关于C#的睡前故事
  • .NET正则基础之——正则委托