C primer plus笔记之初识C语言
初识C语言
--本文参考书籍:
Stephen Prata的《C Primer Plus》
前言
C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。下面这张图形象地说明 C 语言的重要性

什么是C语言
C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11...C99 等。
为什么选择C语言
在过去的长时间里,C语言已经成为了最重要、最流行的编程语言之一。它的成长归功于使用过它的人都对其
非常满意。在过去的20年间,虽然很多人都从C语言转而使用其他语言(例如:C++,Java等),但是C语言凭借其自身实力在众多语言中脱颖而出。
C语言相较于其他高级语言尤其自己独特的优势,C语言在运行时候其效率是非常高的,并且后来的许多边长语言都是基于C语言来进一步拓展的,故有“C生万物”之说。
设计特性
C语言融合了计算机科学理论和实践的控制特性。C语言的设计理念能让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。因此用C语言编写的程序更易懂、更可靠。
高效性
C语言是一门较高效的编程语言。在设计上,它充分利用了当下计算机的优势,C语言程序相对更紧凑,运行速度更快。C语言具有通常是汇编语言才具有的微调控制能力(汇编语言是为特殊的中央处理器单元设计的一系列内部指令),可以根据具体情况微调程序以获得最大运行速度或最有效的使用内存。
可移植性
C 语言是一门具有可移植性的语言,这就意味着,对于在一台计算机上编写的 C 语言程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作量。
强大而灵活
C语言功能强大且灵活(计算机领域经常使用这两个词)。
例如,功能强大的UNIX操作系统,大部分是用C语言编写的;其他语言(如perl,python,BASIC等)的许多编译器和解释器都是使用C语言编写的。因此,在UNIX机上使用FORTRAN时,最终时由C程序生成最后的可执行程序。C程序可以用于解决物理学和工程学的问题,甚至可以制作电影的动画特效。
面向程序员
C语言是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。C语言由丰富的运算符,能让程序员简洁地表达自己的意图。大多数C实现都有一个的大型的库,包含众多的有用的C函数。这些函数用于处理程序员经常需要解决的问题。
C语言的应用范围
早在20世纪80年代,C语言就已经成为小型计算机(UNI1X系统)使用的主流语言。从那以后C语言的应用范围扩展到微型机(个人计算机)和大型机(庞然大物)。许多软件公司都用语言来开发文字处理程序电子表格编译器和其他产品,因为用语编写的程序紧凑而高效。更重要的是,C程序很方便修师移到新型号的计算机中也没什么问题。
无论是软件公司、经验丰富的程序员,还是其他用户,都能从C语言中收益。越来越多的计算机用户已转而求助C语言解决一些安全问题。不一定非得是计算机专家也能使用C语言。
20世纪90年代,许多软件公司开始改用C++来开发大型的编程项目。C++在C语言的基础上嫁接了面向对象编程工具。C+几乎是C的超集,这意味任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

C语言的应用范围
虽然这些年来C++和JAVA非常流行,但是C语言仍是软件业中的核心技能。在最想具备的技能中,C
语言通常位居前十。特别是,C语言已成为嵌入式系统编程的流行语言。也就是说,越来越多的汽车、照
相机、DVD播放机和其他现代化设备的微处理器都用C语言进行编程。除此之外,C语言还从长期被
FORTRAN独占的科学编程领域分得一杯羹。最终,作为开发操作系统的卓越语言,C在 Linux开发中扮演
着极其重要的角色。因此,在进入21世纪的第2个10年中,C语言仍然保持着强劲的势头。
简而言之,C语言是最重要的编程语言之一,将来也是如此。如果你想拿下一份编程的工作,被问到
是否会C语言时,最好回答“是”。
C primer plus笔记之初识C语言的更多相关文章
- go 学习笔记之初识 go 语言
Go 是一种开源编程语言,可以轻松构建简单,可靠,高效的软件. 摘录自 github: https://github.com/golang/go,其中官网(国外): https://golang.or ...
- Go学习笔记:初识Go语言
Go语言简介 Go语言是Google(谷歌)公司开发的一款静态型.编译型并自带垃圾回收机制和并发的编程语言. Go语言的风格类似于C语言.其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括 ...
- 《Go并发编程实战》读书笔记-初识Go语言
<Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...
- [编程笔记]第一章 C语言概述
//C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...
- C++ Primer学习笔记(二)
题外话:一工作起来就没有大段的时间学习了,如何充分利用碎片时间是个好问题. 接 C++ Primer学习笔记(一) 27.与 vector 类型相比,数组的显著缺陷在于:数组的长度是固定的,无法 ...
- 《30天自制操作系统》笔记(02)——导入C语言
<30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...
- Storm学习笔记 - Storm初识
Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大 ...
- 初识 go 语言:方法,接口及并发
目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- 初识 go 语言:语法
目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...
随机推荐
- CF187D 题解
模拟考最后一题是这道题,要是数组开大就场切了,最后不小心挂了 \(15\) 分. 以下是考场思路: 考虑这样一个问题,所有时间对 \(r+g\) 取余是可以的.毕竟红绿灯是一个循环. 再考虑这样一个东 ...
- Windows服务器安全检查
为降低windows服务器系统的脆弱性,除了补丁及时更新,还建议加强系统账号的管理. 1.精简系统登录账号,最小化登录权限 检查方法:开始->运行->compmgmt.msc(计算机管理) ...
- VirtualBox Ubuntu 22.04 Server联网、与主机互联
使用 VirtualBox 7.0安装了两个Ubuntu 22.04 Server虚拟机,想要实现: 主机与虚拟机互联 虚拟机之间互联,且互联的IP应为静态 虚拟机可以联网 解决方法 每个虚拟机配置两 ...
- 修改Jenkins默认管理员admin密码
1.删除Jenkins目录下config.xml文件中下面代码,并保存文件. <useSecurity>true</useSecurity><authorizationS ...
- 疑难杂症(已解决) | 为什么出现python中tkinter创建界面需要一闪而过才进入主窗口?
一.具体问题 如图所示,我编写了一个主窗口的程序(如下所示,有兴趣的可以自己复制后运行),发现需要先进入第一个窗口再进入主界面,这不符合逻辑. 代码区域(完整代码): from tkinter imp ...
- yearrecord——一个类似痕迹墙的React数据展示组件
介绍一下自己做的一个类似于力扣个人主页提交记录和GitHub主页贡献记录的React组件. 下图分别是力扣个人主页提交记录和GitHub个人主页的贡献记录,像这样类似痕迹墙的形式可以比较直观且高效得展 ...
- Django 不通过外键实现多表关联查询
Django不通过外键实现多表关联查询 by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 需求 不通过外键,使 ...
- 后端说,单页面SPA和前端路由是怎么回事
没有请求的路由 在传统开发中,浏览器点击一个超链接,就会像后端web服务器发送一个html文档请求,然后页面刷新.但开始单页面开发后,就完全不同了. 单页面?这个概念难以理解.我用一个js作为整个we ...
- 【RabbitMQ】02 工作队列模式
首先编写一个工作队列的生产者: 发送10条消息然后就关闭,10条消息让RabbitMQ先存着 import com.rabbitmq.client.Channel; import com.rabbit ...
- 【Vue】Re16 Router 第三部分(懒加载、子路由)
一.配置路由懒加载 懒加载的原因: 因为组件不断的增加,项目的路由会越来越多 打包后的文件越来越大,当超过IO读写的瓶颈时,项目加载就很慢了 所以需要将路由文件分离,在被调用时进行加载 分析路由ind ...