C语言是什么

C语言是什么

在这里插入图片描述

文章目录

  1. 什么是C语言

C语言是一门计算机语言,是人与计算机进行交流的一种语言。通过计算机语言编写程序,下达指令给计算机,就可以让计算机工作。目前已经有上千种计算机语言,C语⾔只是众多计算机语言中的一种。

  1. C语言的发展史

从计算机语言诞生以来,总体可分为三个阶段:1.机器语言 2.汇编语言 3.高级语言。如下图所示。
在这里插入图片描述

2.1 机器语言

最早的时候,人们是用机器语言与计算机进行交流的。所谓的机器语言就是二进制指令,也就0和1组成的序列。
  用二进制指令实现一个功能是非常复杂的代码,可想而知的难。因为编写代码的人将面对的是密密麻麻的0和1组成的序列,且还得记得每个功能对应的二进制序列,但凡出错一次,再想回过头去查找,是十分繁琐困难的。所以在当时只有专门研究计算机的科学家,才能有效的编写代码。
  由于机器语言更接近电计算机层逻辑,所以它是一门低级语言。缺点:指极其繁琐、可读性差、出错率高、调试困难、且可移植性差、重用性差。优点:执行效率比较快。

2.2 汇编语言

随着计算机语言的出现和普及,很多人在应用中都觉得,使用二进制指令编写代码太过于复杂,而且费时费力。所以在这样的背景下,汇编语言应运而生。
  汇编语言,就是将具有相应功能的二进制序列,用一个方便记忆的符号代替,这样的符号被称为:助记符。举个例子:就譬如用标识符“ADD”代替数字逻辑上的加减的二进制序列,“MOV”代替数据传递等功能的二进制序列。汇编语言就是用助记符、符号地址等组成的符号指令的集合,所以其亦称符号语言
  值得注意,计算机在阅读汇编代码时可不认识这些助记符呀,它并不知道这些符号所对应的功能。这时就需要有一个专门的编译器给计算机翻译这些符号,即:把助记符转化成计算机能够识别的二进制指令。而这种把汇编语言翻译成机器语言的过程被称为汇编
  汇编语言只是在机器语言的基础上做了简单的文本替换,仍然没有在根本上改变机器语言的特性,所以汇编语言仍然是一门低级语言。虽然推广和移植性差,但还是保持了机器语言的优秀执行效率,又因其可阅读性和便捷性,汇编语言到现在仍然是常用的编程语言之一。

2.3 高级语言

高级语言就是更接近人类思维逻辑的编程语言,更便于人类理解。而高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如:Java,C,C++,C#,Python等。值得注意:C语言可不是由汇编语言直接发展而来的,其是在B语言的基础上开发出来的。
在这里插入图片描述

2.4 C语言的国际标准

C语言在刚被发明出来的时候,大家都觉得很新鲜,用起来也方便,所以很快就推广到全世界。但用了一段时间后,所有人都觉得C语言还是差那么点意思,并不完美。每个人在C语言上都有想要完善和新增的东西,每个人都对C语言修修改改,那么这时每个人手里的C语言都被改的不一样了。这就导致,自己编的程序只能在其自己的编译器上编译,无法相互传递使用。
  所以美国国家标准协会(ANSI)在1990年颁布了C语言的国际标准,即:ANSI C。正因为有了这样的标准来规定,C语言才能形成现在的国际化、普遍的发展。现在用的最多的还是C89和C90这两标准。

  1. 底层和上层的区别

本质上计算机只是硬件设备,是没法自己独立工作。只有在其上安装操作系统,让操作系统调用驱动,驱动再驱动计算机硬件,才能完成工作。大家熟知操作系统有:Windows、MacOS、Linux等。而像QQ、浏览器、抖音、英雄联盟,这些都是应用软件,是建立在操作系统之上的。
  都说C语言是一门底层开发语言,那所谓的底层到底是指什么?以操作系统为界限,操作系统以及之下的部分就是底层,操作系统之上安装的应用被就是上层。如下图所示。
在这里插入图片描述

  1. 编译器

4.1 编译和链接

C语言是一门编译型计算机语言,大家编写的C源代码其实是文本,计算机是无法识别并执行的。源代码必须经过编译和链接两个过程,最终生成可执行程序,计算机才能执行。如下图所示。
  编译过程:把所有C源文件(.c)都经过编译器的翻译操作,最后生产目标文件(.obj)。
  链接过程:把所有目标文件和链接库经过链接器处理,最终生成可执行文件(.exe)。
在这里插入图片描述

4.2 集成开发环境

由于C语言是一门编译型计算机语言,需要依赖编译器将源代码转化成机器能够执行的二进制序列。所以编译器的选择尤为重要,常见的编译器:msvc、clang、gcc、VS、XCode、DevC++等。其中我使用的是VS编译器,是集成开发环境编译器。
  集成开发环境(IDE),是一种集成了编辑、编译、链接、调试功能等一体的程序开发环境。使得开发人员在同一个界面上就可以进行代码的编辑、编译、调试等操作,减少了很多不必要的操作,从而提高了代码的开发效率。

  1. 标准库函数

为了不再重复实现常见的代码,让程序员提高开发的效率,C语言标准规定了一些函数,这些函数就被称为标准库函数。就譬如:printf(标准输出函数)、scanf(标准输入函数)、strlen(计算字符串长度函数)等等。
  值得注意,C语言标准并没有规定函数怎么实现,而只是规定函数名、参数、返回类型、功能,库函数由不同编译器厂商根据便准进行实现。一个系列的库函数一般会声明在同一个头文件中,所有库函数的使用是需要包含头文件的。

  1. C语言支持的三种结构

C语言是结构化的程序设计语言,C语言支持3种结构:顺序结构、选择结构、循环结构,如下图所示。大家会发现生活中的所有事情都可以拆分成顺序、选择、循环或三种结构的组合,换个角度说,只要有这三种结构,就可以描述生活中的所有事情。这是站在多高角度上的抽象化理解,才能从生活中总结出这三种结构,只能说恐怖如斯。
在这里插入图片描述
  在C语言中,这3种结构由9种控制语句来表示:

  1. 条件判断语句(分支语句):if语句、switch语句。
  2. 循环执行语句:for语句、while语句、do while语句。
  3. 转向语句:break语句、goto语句、continue语句、return语句。

在这里插入图片描述
这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 **(安全链接,放心点击)**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

从业者**‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值