说到C,想起大二刚遇到C那时,兴奋与好奇。第一个想法就是用C去计算数学题。因为比较喜欢数学。那时只会一些数据类型,循环与条件语句,还有能看到打印hello word出来,感觉自己掌握得差不多了,挺NB的。自己也会编程了。可不久,发现并不是这么一回事,当一同学问我用什么编译器时候,回答,只有VC6.0,还能用什么呀?后来查阅了一些资料,无语,资料中出现了dev,gcc,TC,连IBM、Intel都有他们各自的编译器。而编译器对适用的C标准有要求的,匆匆查阅之,知道有这回一事。今天读了《征服C指针》,明白了C诞生的必然性。
试读的第一章,讲述了C是为什么产生,怎样发展的一系列历史。任何一个事物的存在,都必然有他的合理性,作为一个新的工具C诞生了,大大超越B语言成为NB(New B),提高了Unux的开发效率,犹如生产工具诞生促使了生产力效率。为什么能这么快呢?因为C编译后更接近硬件,虽然汇编语言也这样,但汇编没有C具有的可读性。可能由于诞生的比较急,或许留了很多《C陷阱与缺陷》,便是新事物仍然很受欢迎,从K&R C到ANSI C,再到ISO C,也就是我们用的C99,现在明白为什么C的编程器有支持各种C的规定。最后总结一句,C是由于当时的Unux的开发需求而产生,虽然存在些许缺陷,可是经过各个标准的规范下来,直到目前来说都是TIOBE榜上数一数二的。
如果C缺少了指针,它还剩下什么?这个就像前面描述的刚刚入门那个水平一样,一些数据类型,循环与条件语句。没有指针,数组会怎样?函数怎样理解?结构体是怎样的?文件怎么读?C又是什么呢?
由第五章的例子可以看出指针的灵活性与合理性,通过很多方法去实现一个问题的解决,还很巧妙与高效地完成任务。指针是一个地址,数组在内存中存储在一块集中的区域,找到它需要提供开始的地址,好吧,这个地址就是指针的值,这个常量一般是由数组名提供,把这个数组名赋给指针变量,这个指针就指向了这些数据。可以指向了开始的位置,那么想访问第二个元素的时候,指针应该向后几个字节才能到访问下一个元素呢?这里也就遇到了第二个问题,这个指针是一个什么类型,在操作的时候就会移动几个字节数,移到需要的位置。对于结构体也就移得多一点了,因为结构体数组中每个元素比较大。扩展下,程序的函数又是怎样找到的呢?其实就是通过函数指针,像数组名那样函数名也是一个指针常量,所以也有一个东西叫做函数指针类型。指针还可以去实现很多数据结构的操作,例如链表,树等,也像试读的那例,没有了指针,怎样去实现链式,怎样去找到下一个节点的位置呀?
C除了指针就不是C了,因为它没有了灵魂。C指针实在太重要了,很期待“征服C指针“。
相关推荐
指针网图书下载是指通过指针网平台下载电子书籍的过程,然而,指针网并不是一个提供图书下载的平台,而是一个书比较全的搜索引擎,提供免费的试读服务的平台。因此,下载指针网图书实际上是下载读秀网图书的问题。 ...
本书图文并茂,示例丰富,第3版从190段代码和164幅图表增加至205段代码和220幅图表,对C语言的基础知识进行了彻底剖析,内容涉及数组、函数、指针、文件操作等。对于C语言语法以及一些难以理解的概念,均以精心绘制...
文档中的内容涉及的是学生在遇到学业困难,如挂科过多,需要进行留级或试读时,需要提交的申请书样本。留级和试读是高等教育中对学生学业表现不佳的一种处理方式,通常根据学校的学籍管理制度执行。以下是相关知识点...
留级跟班试读申请书参考.doc
资源名称:玩到极致 Android手机让你不一样(目录试读)书本内容简介: 《玩到极致Android手机让你不一样》主要内容简介:对于刚入手Android(安卓)手机的人来说,这款界面时尚、功能强大的智能手机操作系统,又...
《UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为...
《软件性能测试与LoadRunner实战试读》是针对IT专业人士,特别是测试人员的一份宝贵资源。LoadRunner是一款业界广泛使用的性能测试工具,由HP(现为Micro Focus)开发,它能够模拟大量用户并发操作,帮助识别系统在...
根据提供的信息,我们可以深入挖掘与“软件小设计试读样章”相关的专业知识点。此章节旨在探讨软件设计的核心概念,并通过实例分析来帮助读者更好地理解软件设计的基本原理和技术要点。 ### 软件设计的经典原则 ##...
### ASP.NET设计模式知识点概述 #### 一、书籍背景与推荐 - **书籍推荐人**:本书得到了微软首席Program Manager Scott Hanselman的高度评价并为之作序。Scott Hanselman不仅是技术领域的知名人士,也是社区活跃...
3. **Optionals**:Swift的可选值(Optional)是一种处理null的安全方式,它能避免常见的空指针异常。 4. **函数与闭包**:Swift支持函数作为一等公民,可以赋值给变量、作为参数传递、作为返回值。闭包是能够捕获...
根据提供的文件信息,内容涉及到游戏设计领域的一本重要著作《游戏设计梦工厂试读样章》,并且提到了游戏设计大师陈星汉及其恩师Tracy Fullerton的作品,以及相关的版权信息和出版社信息。以下是对这些信息的详细...
在《Android移动性能实战试读文章》中,我们可以探索到Android平台上的应用程序性能优化的关键方面。这篇文章虽然只是试读版,但提供了丰富的信息,旨在帮助开发者提升应用的运行效率、用户体验以及整体性能。以下是...
5. **指针**:C语言的精髓之一就是指针,它允许直接访问内存地址,从而实现高效的数据操作。书中会详细解释指针的概念,以及如何使用指针进行动态内存管理。 6. **预处理器**:预处理器是C语言的一个重要特性,涉及...
以Java语言为载体,通过讨论Java程序设计的一般过程和方法,重点讲述程序设计基础、面向对象程序设计、算法与数据结构、GUI程序设计和Web程序设计的知识,并涉及计算机科学基础、数据和控制、程序设计理论、软件工程...