C语言 01 概述
历史
C 语言是一门面向过程的计算机编程语言,于 1972 年诞生于贝尔实验室。
C 语言是丹尼斯·里奇(Dennis Ritchie)以 B 语言为基础发展而来,因此他被称为 C 语言之父。
C 语言为什么命名为 C ?
1967 年,剑桥大学的 Martin Richards 对 CPL(Combined Programming Language)语言进行了简化,于是产生了 BCPL(Basic Combined Programming Language)语言。
1969 年,美国贝尔实验室的肯·汤普森(Ken Thompson),以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并且用 B 语言写了初版 Unix 操作系统。
1972 年,美国贝尔实验室的丹尼斯·里奇(Dennis Ritchie)在 B 语言的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母 C 作为这种语言的名字,这就是 C 语言。
1973 年初,C 语言的主体完成。汤普森和里奇用它完全重写了 Unix。
随着 Unix 的发展,C 语言自身也在不断地完善。
截至目前,各种版本的 Unix 内核和周边工具仍然使用 C 语言作为最主要的开发语言。
1982年,美国国家标准协会(ANSI)为了使 C 语言健康地发展下去,决定成立 C 标准委员会,建立 C 语言的标准。
1989 年,ANSI 发布了第一个完整的 C 语言标准,简称 C89,也称其为 ANSI C。
1990 年,国际标准化组织 ISO(International Standard Organization)一字不改地采纳 C89,发布 C90。
1999 年,在做了一些必要的修正和完善后,ISO 发布 C99。
2011 年,ISO 发布 C11。
2018 年,ISO 发布 C17(也被称为 C18)。
2022 年,ISO 发布 C23。
编译器
- GCC:GNU Compiler Collection 的缩写,GNU 组织开发的开源免费的编译器(常用)。
- MinGW:Minimalist GNU for Windows 的缩写,Windows 操作系统下的GCC。
- Clang:开源的 BSD 协议的基于 LLVM 的编译器。
- Visual C++:Microsoft VC++ 自带的编译器。
Hello World
学习一门语言写的第一个程序就是 Hello World,这既是基础,也是仪式:
#include<stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
简单来说,一个C程序就是由若干 头文件 和 函数 组成。

#include <stdio.h>是一条预处理命令, 它的作用是通知 C 语言编译系统在对 C 程序进行正式编译之前需做一些预处理工作。函数就是实现代码逻辑的一个小的单元。(注意:C 程序一定是从主函数开始执行的)\n是转义字符中的换行符。
C语言 01 概述的更多相关文章
- 重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...
- Linux下c语言环境概述
Linux下C语言环境概述 主要涉及编辑器.编译链接器.调试器.项目管理工具 编辑器 Linux中常用的编辑器有vi和emacs 查看vim配置文件并编辑 编译链接器 在Linux中,最常用的编译器是 ...
- 2017.12.23 第二章 统一建模语言UML概述
第二章 统一建模语言UML概述 (1)为什么要建模 模型是某个事物的抽象,其目的是在构建这个事物之前先来理解它,因为模型忽略了那些非本质的细节,这样有利于更好的理解和表示事物: 在软件系统开发之前首先 ...
- kafka详解(01) - 概述
kafka详解(01) - 概述 定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域. 消息队列 MQ传统应用场景之异步处理 使用消 ...
- Zookeeper详解(01) -概述
Zookeeper详解(01) -概述 概念 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分 ...
- c语言01次作业--分支,顺序结构
C语言--第01次作业 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本章学习让我体会良多.首先,不得不承认自己是一个非常马虎的人.常见的问题就是输出格式上常因为没有与题目要 ...
- 【OracleDB】 01 概述和基本操作
实例概念: Oracle有一个特殊的概念 Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例 实例处理Oracle的请求,调用文件系统 然后返回结果响应给客户端 单实例和多 ...
- C语言的概述--学习c的第二天
以下是整理的知识点: #include <stdio.h>/* 引入stdio.h文件c的标准函数库 */ int main(void)/* 定义一个函数main(),int定义函数返回的 ...
- C语言 01 形参实参
之前的都在印象笔记记录 continue 结束本轮循环体,进入下一次循环.break 直接结束整个while循环 形参:定时函数时函数名后面中的参数实参:调用函数时传入的具体数据基本数据类型作为形参, ...
- java语言特性概述
一.前言 我们都知道java是面向对象的编程,其中四个基本特性:抽象.封装.继承.多态.这四个特性,概括起来可以这么理解,抽象.封装.继承是多态的基础,多态是抽象.封装.继承的表现. 二. JAVA ...
随机推荐
- 【Azure 存储服务】记一次调用Storage Blob API使用 SharedKey Authorization出现的403错误
问题描述 使用Azure Storag Blob REST API上传文件,用SharedKey作为Authorization出现403错误. 错误消息 b'\xef\xbb\xbf<?xml ...
- 【Azure Developer】Visual Studio 2019中如何修改.Net Core应用通过IIS Express Host的应用端口(SSL/非SSL)
问题描述 在VS 2019调试 .Net Core Web应用的时,使用IIS Express Host,默认情况下会自动生成HTTP, HTTPS的端口,在VS 2019的项目属性->Debu ...
- Dapr v1.13 版本已发布
Dapr是一套开源.可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性.微服务.无状态以及有状态等应用程序类型.Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统 ...
- MVVM --- 实现多层级通知
引言 在实际开发场景中,当ViewModel内的一个属性是一个 ObservableCollection<T> 或者是一个多层级 class 的时候,有可能有的需求需要 Observabl ...
- 如何下载RTMP/http直播源直播视频(比尔下载器使用完整教程)
之前已经介绍了如何抓取各种app直播源及在线视频地址,本节内容将详细介绍如何下载rtmp/http直播源的直播视频,请注意,rtmp/http指协议,不针对任何app,凡是使用了以上协议的基本原理一样 ...
- 码上掘金 里面 嵌入自定义组件,可以用做组件demo演示
查看代码片段 https://code.juejin.cn/pen/7128211910696108066 需求 将写的组件演示出来,默认 码上掘金 不能 嵌入组件. 解决问题 选择自定义模板,所有代 ...
- C++数值类型与string、CString之间的转换
目录 数值范围 数值类型与string互相转换 数值类型转换为string 使用函数模板+ostringstream 使用标准库函数std::to_string() string转换为数值类型 使用函 ...
- CSharp的lambda表达式匿名类扩展方法
c#的lamba表达式 之前已经写过一些关于委托还有事件的文章,今天就来介绍一下lambda表达式. 首先定义需要的函数以及委托 { public delegate void DoNothingDel ...
- 数与计算机 (编码、原码、反码、补码、移码、IEEE 754、定点数、浮点数)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- spring boot2集成api文档工具swagger-ui(上)
说明 第一步:创建项目 浏览器打开:https://start.spring.io/,生成一个spring boot项目 点击Generate这个按钮,下载项目包文件 第二步:导入开发工具 打开下载目 ...