当前位置:首页 > 技术 >

c的语言特征(c语言八个特点)

来源:原点资讯(www.yd166.com)时间:2022-11-22 16:48:52作者:YD166手机阅读>>

c的语言特征,c语言八个特点(1)

0x01 感言

这本经典的K&R C被称为C程序员的第一本书,也是海带C语言推荐系列书籍的第一本书,这本书适合入门级的菜鸟,也适合code多年的老鸟。

技术书籍不同于其他如小说类的书籍,越复杂越有深度越好看,无论是菜鸟还是老鸟,学一门新的语言都喜欢简单、直接的方式,最好是看看语法就能快速进入实际项目开发。

一本厚厚的大部头,让人厌烦不说,很容易使人失去兴趣甚至放弃,随后便被束之高阁,这样的书籍虽然内容丰富,却打击了无数少男少女积极上进的心哪。

幸运的是K&R C只有薄薄的200多页,即使这200页又被分成了8章,平均每章只有十几页,却全面、系统、准确地描述了C语言的特性和基本语法。

BWK和D爷爷唯恐大家不能理解,几乎对书中的每个示例都作了说明,同时又止步于过度且繁冗的解析,简单的风格让大家不至于分心于其他知识体系。

看,多符合D爷爷的KISS(keep it simple ,silly)原则!

另外,大多数的技术类书籍是有时限性的,长则五年、短则几个月某些技术书籍就会随着技术的更新被淘汰,但C语言是无可替代的,所以这本K&R C值得一读哦。

0x02 海带说

K&R C只关心C语言本身的东西,其他如进程间通信、多线程处理等相对深入的知识,都不在本书范围之内。

K&R C分成了8章,海带根据自己的理解在每章中挑出最为有意思的地方与大家一起分享。

1、导言

这一章是对C语言的概要介绍,著名的hello world便是从这里开始的。

如果你稍有一些编程的思想,看完这一章就应该能够写出简单的C语言程序,遇到语法问题,直接跳到下面的章节中去找就可以了。

海带一直觉得开发人员是应该有技术敏感性的,有的人简单看看语法就可以写出高效的代码,但有的人即使写了十几年代码最多是中规中矩,没有灵魂。

2、类型、运算符与表达式

在这一章,大家可以记住变量的有关概念,比如什么是声明,什么是定义?再比如C语言是强类型语言,变量的名称表示这个变量在内存中的地址,而变量的类型则决定了变量所占的内存字节数。

嗯,估计好多的Java的程序员是不太了解的,你是不是挺开心?

3、控制流

这一章讲了if-else/switch-case/while、for循环,另外也要注意这几个语句与break/continue/go语句的使用。

海带悄悄的告诉你,我们写代码程序其实就是为了改变EIP(32位CPU)/RIP(64位CPU)指令指针寄存器的值,这几条语句因此而生。

因为EIP或RIP这个寄存器中保存的永远是CPU要执行的下一条指令的地址,只要控制了EIP或是RIP中的值,就控制了CPU的走向。

你是不是觉得自己好厉害?

4、函数与程序结构

这个就不用说了吧,随便找一本编程语言书籍,其中都会有函数的介绍,如果你不懂得如何写函数,就比较惨啦。

函数的出现是为了代码复用和分模块开发,函数可以隐藏实现的细节,使得程序结构更加清晰。

海带记得当时老师讲函数的时候重点提到了函数的重载和函数栈桢的实现原理,当然在64位CPU下,函数的实参会被优先存放在寄存器中,与32位的栈应用稍有不同。

海带提示:栈的出现是因为递归问题的提出,有兴趣的同学可以了解一下哦。

5、指针与数组

这一章比较重要,也算难点,当然,如果你写过汇编语言的代码,对于指针和数组的理解就比较容易了。

可以简单地记一下,指针、数组名、函数名都是地址,或者指向内存中的数据或者指向代码,合理地使用指针会让代码更简单、清晰,好吧,说得太简单,汗一个。

在海带C语言推荐系列中的另外三本书中会对指针和数组有更深入的讨论。

6、结构

这一章介绍了结构体,有点面向对象的思想了。

海带提醒大家注意两个问题:一个是内存对齐,也就是说在结构体中变量声明的顺序会影响结构体的大小哦;另外一个是结构实例拷贝,也就是深拷贝和浅拷贝的问题。

7、输入输出/UNIX系统接口

把这两章放一起是因为这两章都与ANSI C标准库相关,严格来说这并不是C语言本身的组成部分,比如标准输入输出、文件操作等等。

海带提示:大家知道ANSI C标准库是一个字典就行,不用刻意去记,用到的时候就去查。

0x03 小典故

这本K&R C中的K是Brian W. Kernighan(BWK),并不是Ken Thompson那个Ken爷爷哦,BWK不是C的发明者,但他参与写下了这本全世界知名的K&R C。

D爷爷就不多介绍了,据D说,在他、Ken和BWK三人中,BWK最能写文章,他次之,而Ken写得最少,但说到编程,Ken爷爷才是当之无愧的老大,有关Ken爷爷的故事我们以后再说。

在D爷爷去世后,Rob Pike在Google Plus发了一条简短消息,外界才知道这位伟大的大牛已经不在了,十分伤感地说!

后来全世界的程序员纷纷留言“bye world”或“;”来表达对D爷爷的敬仰之情。

注:在C语言中分号;代表一行的结束。

,

栏目热文

c语言错误c2143如何解决(c语言error321)

c语言错误c2143如何解决(c语言error321)

不知道从什么时候开始,「小甜水」、「适合女生喝的酒」、「微醺晚安酒」,这类说法越来越多。据北京商报,仅 2021 年上半...

2022-11-22 17:04:29查看全文 >>

c语言和编程区别(c语言与编程有什么关系)

c语言和编程区别(c语言与编程有什么关系)

我们从零开始说:C是由Dennis Ritchie在1970年代初期在美国AT&T贝尔实验室工作时开发的一种中级编程语言...

2022-11-22 16:54:50查看全文 >>

什么是主c副c(有哪些副c可充当主c)

什么是主c副c(有哪些副c可充当主c)

在原神中,很多角色都能担任副C一职,但你知道哪些副C最好用吗?本期小刘就来为大家盘点一下,原神中最值得培养的8个副C,你...

2022-11-22 16:49:58查看全文 >>

c程序和c语言的关系(编程语言c与c+有何联系和区别)

c程序和c语言的关系(编程语言c与c+有何联系和区别)

对于理工科的大一新生来说,C 语言是个绕不开的坎。由于在进入大学前,许多人都完全没有接触过编程相关的内容,导致对于这门课...

2022-11-22 17:14:36查看全文 >>

c语言和其他语言关系(c语言与编程有什么关系)

c语言和其他语言关系(c语言与编程有什么关系)

程序员宝藏库:https://github.com/Jackpopc/DevWeeklyLinux之父Linus Tor...

2022-11-22 17:13:40查看全文 >>

c语言原理(c语言的基本框架)

c语言原理(c语言的基本框架)

感谢您的阅读与点赞!欢迎关注:「大猫玩程序」,查看C语言系列文章C语言之父C语言背景20世纪70年代早期,贝尔实验室的D...

2022-11-22 17:16:00查看全文 >>

c语言到底怎么用(c语言顺口溜)

c语言到底怎么用(c语言顺口溜)

硬件设计师最常见的工作内容是通过写代码来测试硬件。这10个C语言技巧(C语言仍然是常见的选择)可以帮助设计师避免因基础性...

2022-11-22 16:50:41查看全文 >>

c语言之间的区别(c语言和c 语言有区别吗)

c语言之间的区别(c语言和c 语言有区别吗)

作为嵌入式开发者,只知道写代码还是不行的,不了解C语言的版本差异,可能就会在项目的过程中踩坑,明明是存在的东西就是会出错...

2022-11-22 17:13:11查看全文 >>

c语言是不是c程序(c语言是一切的核心吗)

c语言是不是c程序(c语言是一切的核心吗)

前言c 语言是一种底层语言,是一种系统底层级的语言,例如Windows、Linux、Unix等操作系统就是使用c语言编写...

2022-11-22 16:45:20查看全文 >>

c是c语言吗(c语言中c+什么意思)

c是c语言吗(c语言中c+什么意思)

C 资源框架速查表C 标准库,包括了STL容器,算法和函数C Standard Library:是一系列类和函数...

2022-11-22 16:53:36查看全文 >>

文档排行