什么是C语言?

什么是C语言?

  • 一、C语言简介
    • 1.学习C语言必记重点
  • 二、C语言的优点
  • 三、C语言的价值
    • 1.列举C语言实例
  • 三、C语言程序
  • 1.C语言程序扩展名
  • 2.C语言程序编辑器

什么是C语言?

一、C语言简介


C语言是一种较早的程序设计语言,诞生于1972年的贝尔实验室。
1972 年,Dennis Ritchie 设计了C语言,它继承了B语言的许多思想,并加入了数据类型的概念及其他特性。 尽管C语言是与 UNIX 操作系统一起被开发出来的,但它不只支持UNIX。C语言是一种通用(广泛可用)的编程语言。
程序设计语言实与编译器是一体的,C编译器有著名的GCC(GNU Compiler Collection)等。
广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。



1.学习C语言必记重点

  • C语言是为了编写 UNIX 操作系统而被发明的。
  • C语言是以 B语言为基础的,B语言大概是在 1970 年被引进的。
  • C语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。
  • 截至 1973 年,UNIX 操作系统完全使用 C语言编写。
  • 目前,C语言是最广泛使用的系统程序设计语言。
  • 大多数先进的软件都是使用 C语言实现的。
  • 当今最流行的 Linux 操作系统和 RDBMS MySQL 都是使用 C语言编写的。



二、C语言的优点


C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

  • C语言易于学习。
  • C语言是结构化语言。
  • C语言可以产生高效率的程序。
  • C语言可以处理底层的活动。
  • C语言可以在多种计算机平台上编译。



三、C语言的价值


C语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 C语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C语言作为系统开发语言。

1.列举C语言实例

以下仅是举例最常见几种

  • 操作系统
  • 语言编译器
  • 汇编器
  • 文本编辑器
  • 后台打印服务(Print Spooler)
  • 网络驱动器
  • 现代程序
  • 数据库
  • 语言解释器
  • 实体工具



三、C语言程序


1.C语言程序扩展名

一个 C语言程序,可以是 3 行,也可以是数百万行,C语言可以写在一个或多个扩展名为 “​.c​” 的文本文件中,例如,​hello.c​。

C语言程序的后缀还有可能是​.h​和​.cpp​,前者是c语言的头文件(比如​stdio.h​),后者是C++(可以认为是C语言的超集)的代码文件(也可以用在C语言的学习上)。

2.C语言程序编辑器

C语言可以使用 “vi”、“vim” 或任何其他文本编辑器来编写 C语言程序。任何一款代码(文本)编辑器都可以编写C语言代码(只要它可以保存.c文件),比如VSCode,sublime,atom,vim等。

但并不推荐使用记事本这种工具,可能会出现一些未知的错误,前面提到的代码编辑工具是经过实践后可以使用的。



如若本文能帮您, 希望您能关注Python老吕的CSDN博客 ;
您可以在本文进行评论,老吕将努力快速回复,和您近距离交流各种问题;
博主ID:Python老吕,希望大家点赞、评论、收藏。


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

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

相关文章

浅谈Redis和分布式系统

浅谈Redis Redis用于存储数据,且在内存当中进行存储。 但是在日常编写代码中,定义一个变量也就属于在内存当中存储一个数据。 Redis主要会在分布式系统当中发挥重要作用,如果只是单机程序,直接通过变量存储数据的方式会比使用Re…

Linux的进程调度实现

经常被问到进程的调度算法有哪些,什么先进先出、短进程优先、时间片轮转、多级反馈多列等等算法能说一大堆?那具体的,linux内核使用了什么样的算法,且来探究一下。 本文所引用源码基于linux内核2.6.34版本。 目录 调度器类 从 s…

【兔子机器人】修改GO电机id(软件方法、硬件方法)

一、硬件方法 利用上位机直接修改GO电机的id号: 打开调试助手,点击“调试”,查询电机,修改id号,即可。 但先将四个GO电机连接线拔掉,不然会将连接的电机一并修改。 利用24V电源给GO电机供电。 二、软件方…

15. 三数之和 - 力扣

1. 题目 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 …

机器学习-pytorch1(持续更新)

上一节我们学习了机器学习的线性模型和非线性模型的机器学习基础知识,这一节主要将公式变为代码。 代码编写网站:https://colab.research.google.com/drive 学习课程链接:ML 2022 Spring 1、Load Data(读取数据) 这…

代码随想录(day2)——数组

Leetcode.977 有序数组的平方: 题目如下: 对于本题,可以采用双指针的方法进行解答,如果笔者写的几篇关于题解的文章有幸被读者浏览的话,会发现,针对数组问题,很大一部分是使用双指针来解决的。…

UE5.2 SmartObject使用实践

SmartObject是UE5新出的一项针对AI的功能,可为开发者提供如公园长椅、货摊等交互对象的统一外观封装,如UE的CitySample(黑客帝国Demo)中就运用到了SmartObject。 但SmartObject实践起来较为繁琐,主要依赖于AI及行为树…

UE 中的数学

坐标空间转换 使用引擎提供的函数 通过 Rotate Vector / Unrotate Vector 转换坐标空间,因为该方法内部是通过旋转矩阵对向量进行变换 旋转计算 角度计算

【leetcode热题】 二叉树的后序遍历

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输出…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记05_共谋(中)

1. 默许共谋 1.1. 又称寡头价格协调(Oligopolistic Price Coordination)或有意识的平行行为(Conscious Parallelism) 1.1.1. 在条件允许的情况下,它会发生在市场集中度较高的行业当中 1.1.…

蓝桥杯递推与递归法|斐波那契数列|数字三角形|42点问题|数的计算|数的划分(C++)

递归是用来做dfs,是搜索算法的基础 递推是用来做dp部分,及部分其他算法,复杂度较低,不会出现爆栈问题递推法: 递推法是一种在数学和其他领域广泛应用的重要方法,它在计算机科学中被用作一种关键的数值求解…

构建高效可靠的消息队列系统:设计与实现

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 一、引言 二、设计目标 2.1、高可用性 1. 集群搭建 1.1 …