发表于2024-11-27
最接地气的C语言图书,拥有3个最显著的特点,那就是——不用啃,不用啃,真的不用啃!
为零基础的初学者量身定做,让读者在十分轻松的环境中花费最少的时间掌握C语言。通过本书学习C语言,读者会很快抓住知识的“根”,因而事半功倍!
张宁,南开大学生物信息学博士和博士后,现任职于天津大学精密仪器与光电子工程学院,主要从事生物医学信息相关的数据分析、数据库、软件开发等工作。在C语言一线教学多年,精通C语言、Visual Basic、Windows编程等,有19年编程和软件开发的实践经验,在国内外高水平刊物发表论文50余篇,多次在各类编程竞赛和讲课大赛中获奖。著有《老兵新传:VisualBasic核心编程及通用模块开发》(清华大学出版社)等。
第1章 从这里爱上编程——程序设计和C语言概述
1.1 水面下的冰山——计算机程序和计算机语言
1.2 第一次亲密接触——纵览C语言
1.2.1 一窥程序之美——C语言程序的结构
1.2.2 循序渐进,快乐学习——语句的光和影
1.2.3 程序里的说明书——注释
1.2.4 免费翻译服务——编译和链接
1.3 先其利器——Visual C++ 6.0上机指导
1.4 天平称物问题——进制转换
1.4.1 这些进制是哪来的——二进制、八进制、十六进制
1.4.2 你还应知道这几招——不同进制之间的转换
第2章 色彩斑斓的积木——数据类型、运算符和表达式
2.1 标识符、常量和变量
2.1.1 给我起个名字吧——标识符
2.1.2 有一说一——常量
2.1.3 程序里的储物盒——变量
2.2 追根“数”源——细说数据类型
2.2.1 整型数据用C语言怎样说
2.2.2 实型数据用C语言怎样说
2.2.3 字符型数据用C语言怎样说
2.2.4 字符串型常量用C语言怎样说
2.3 诸算达人——运算符和表达式
2.3.1 再谈加减乘除——算术运算
2.3.2 走,给我进去!——赋值
2.3.3 加加和减减——自增、自减
2.3.4 神秘的倒数第一——逗号运算
2.4 位在我心中——位运算
第3章 一战到底——顺序结构
3.1 整装待发——C语言中的语句
3.2 别急,一个一个来——单个字符的输出与输入
3.2.1 拿好了钥匙进仓库——输出与输入概述
3.2.2 向屏幕开火——单个字符的输出
3.2.3 饭要一口一口地吃——单个字符的输入
3.3 更过瘾的输出与输入——格式输出与输入
3.3.1 我有私人警察——格式输出函数printf
3.3.2 我是快乐的快递员——格式输入函数scanf
3.4 常用系统数学函数
3.5 是不是有点专业级软件的意思了——顺序结构程序举例
……
第4章 程序也能跑捷径——选择结构
第5章 不必亲手愚公移山——循环结构
第6章 把平房升级为高楼大厦——数组
第7章 蒙着面干活——函数
第8章 璀璨的星星——指针
第9章 我的类型我做主——结构体与共用体
第10章 得文件者得天下——文件
第11章 编程的经验财富——算法与数据结构基础
第12章 程林高手武功秘籍——软件开发基础
第8章 璀璨的星星——指针
当你从网页复制一段文本,再到你想要的地方随意粘贴的时候;当你在Excel表格中插入几行数据的时候;当你不知怎的突然遭到被弹出“xx程序错误,单击确定立即关闭”的时候;当你用游戏修改软件锁定生命值,让游戏中的角色成为“金刚不死之躯”的时候……知道吗,这些都与指针息息相关!
指针可是程序设计的一个强大工具,使用指针,不仅可以表示很多重要的数据结构、高效地使用数组、方便地处理字符串、另类地调用函数……而且可以直接访问内存,赋予我们广大的自由度和“至高无上”的权利!编程高手们常说“无指针,不自由”,就是这个道理。因此指针也是学习C语言最重要的一环,可以说如果不会使用指针编程,就不是真正掌握了C语言。
有人说指针也是学习C语言最困难的一部分,但本书持相反意见。只要学习方法得当,实际上指针也并没有听起来那么难学!请读者不要畏惧,在本章我们会教给你很多技巧和方法,一步步带领大家攻克指针的壁垒。让我们现在就出发,一起体会这一次精彩、充满刺激挑战和富有乐趣的指针之旅!
8.1 内存里的门牌号——地址和指针的基本概念
“编号”,是人们常用的手段。例如,现在你翻到本书的这一页就有一个页码编号。编号的例子还有很多,如超市的存包箱有箱号,电影院座位有座次号,楼房的房间有房间号……。通过编号我们可以准确地找到位置。
计算机的内存是由一个个字节组成的,每个字节可以保存8个比特(8个0或1)。计算机内存的字节数可以有很多,例如一台有2GB内存的计算机就有多达2,147,483,648个字节(2×1024×1024×1024=2,147,483,648)! 那么多的字节,如果搞错搞乱,麻烦可就大了。如何有条不紊地管理这些字节,必须有个合适的手段。人们仿照生活中为事物编号的方式,也为计算机内存的每个字节编号。把第一个字节编为0号(从0开始,与数组下标有点像),第二个字节编为1号……,最后一个字节是2G-1即2,147,483,647号,如图8.1所示。
与我们把房间号称为地址类似,计算机内存中的字节编号也称为地址,地址也称指针。
9.4 内存空间的批发和零售——动态存储分配
在日常生活中,不知我们有没有遇到过这样的尴尬:本来说好了约10位朋友去吃饭,结果却只来了5个人,预定的10个菜由于吃不了就浪费了。然而作为聚会组织者却必须以最多的可能人数来订餐,这样带来的问题就是来的人越少,浪费得就越多。如何解决这种问题呢?我们可以不预先定餐,待客人来了之后,再根据实到人数来点菜;即使在开席之后中途又有新客人到来,也可以随时加菜。这样按需实时点菜,来多少人点多少菜,就不会有浪费了。
在程序中,预先定义的变量或固定大小的数组就如同预先订桌点好的菜,同样也会面临这样的尴尬。例如,计算平均分的程序需要由用户输入每位同学的分数,当预先不能确定有多少位同学时,就需事先定义一个足够大的数组,例如要定义包含100个元素的数组;又如输入字符串时,由于预先不能确定用户所输入字符串的长度,也要事先预定义一个足够大的char型数组如char str[80];。而这些数组的空间很可能实际只用了其中的一部分,没有使用的空间就浪费了。能否在程序中也实现按需实时分配内存空间呢?
C语言提供了一些内存管理库函数,常用的列于表9.1。通过这些库函数可由我们自己直接申请分配内存空间,而不必非要通过定义变量或数组才能够获得内存空间;在不需要这些空间时还可以随时将它们释放由系统回收。这称为动态存储分配。
12.1.3.1 类和实例
类,就是类型的类,“物以类聚,人以群分”,我们将同类事物归为一类。例如,张三、李四、王五同属人类;你的手机、我的手机、商场柜台上卖的手机同属手机这一类;电脑游戏中不断出现的一个个“小兵”同属小兵这一类。
“类(class)”只是一个抽象的概念,它并不代表某一个具体的事物。例如“人类”是个抽象的概念,但不指任何一个具体的人;而张三、李四、王五才是具体的人。“手机”也是个抽象的概念,它既不能打电话,也不能接电话;只有具体落实到某一部看得见摸得着的、实实在在的手机,才能使用。尽管“类”不代表具体事物,但“类”代表了同种事物的共性信息,只要提及“手机”这个概念,我们头脑中都会想象出一部手机的样子,而绝不会出现一幅长着两条腿可以走路的“人”的形象。
也可以将“类”看做一张设计图纸,它可用于制造具体的事物。例如“汽车”类是一张设计图纸,它是不能跑起来的;但按照“汽车”这个类的图纸制造出一辆辆具体的汽车我们就能坐上去“兜风”了。
一般来说,由“类”这张设计图制造出的一个个具体的事物才能称之为“对象”或“类的实例(instance)”,而不应把一个“类”叫做对象。但在不引起混淆的情况下,有人也把“类”叫做对象,即“对象”这个术语既可指具体的事物,也可泛指类;而“实例”这个术语,必然指具体的事物。所以把一个个具体的事物称之为“类的实例”更确切一些。
12.3 信息时代是怎样炼成的——数据库和数据库设计初步
现如今是一个信息高度发达的时代,足不出户就可以在网上商城查询各种商品的价格,人事管理部门轻点鼠标就能调出一个人的详细档案,从就医的病历记录到我们身边的百度搜索,从银行存款到网上婚恋交友,我们被充斥在各种信息的环境中,可以随时随地查询、获取我们所需要的信息。这些信息在计算机内部是怎样管理的,是怎样供我们查询使用的,为什么在一家银行把钱存进去却能在另一家联网银行把钱取出来,为什么查询序列号便能立即得知商品的真伪,为什么小小鼠标的轻轻点击就能在百度上想要什么查出什么……这些都要归功于数据库。数据库不仅使人们管理数据的工作量大大减轻,它也是信息时代的基础。现在很少有专业级的软件没有数据库的功能了,即使一个简单的网站在后台也配有数据库至少管理着浏览日志、登录账户、网站点击次数等信息。
那么什么是数据库呢?数据库(database,简称DB),顾名思义,就是数据的仓库,是计算机中保存和管理数据的所在。数据库有很多种类型,目前最常见的是关系型的数据库。
……
C语言其实很简单 下载 mobi pdf epub txt 电子书 格式 2024
C语言其实很简单 下载 mobi epub pdf 电子书此用户未填写评价内容
评分物有所值,很不错,讲的详细
评分像我这种小白简单易懂,很不错的书
评分书插图确实不错,好评!
评分喜欢
评分挺好的,书没有损坏
评分京东自营配送,速度快,质量好。
评分好好好好好好好好好好
评分很好很好很好很好很好
C语言其实很简单 mobi epub pdf txt 电子书 格式下载 2024