必读书目:C和指针

2023-11-03 18:20
文章标签 指针 必读 书目

本文主要是介绍必读书目:C和指针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C和指针

 书 名: C和 指针

        作 者:(美)(KennethA.Reek)

  出版社: 人民邮电出版社

  出版时间: 2008

  ISBN: 9787115172013

  开本: 16

  定价: 65.00 元

定价

65.00 元

出版社

人民邮电出版社

作者

(美)(KennethA.Reek)

译者

徐波

ISBN

9787115172013

语种

英语、简体中文

外文名

Pointers on C

出版时间

2008

开本

16

页数

618页

品牌

人民邮电出版社

书名

C和指针


  • 1基本内容
  • 2编辑本段目录
  • 3编辑推荐
  • 4作者简介
  • 5名人推荐

1基本内容

编辑

内容简介  《C和指针》提供与C语言编程相关的全面资源和深入讨论。《C和指针》通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。

2编辑本段目录

编辑

  第1章 快速上手 

  1.1 简介 

  1.1.1 空白和注释 

  1.1.2 预处理指令 

  1.1.3 main函数 

  1.1.4 read_column_numbers函数 

  1.1.5 rearrange函数 

  1.2 补充说明 

  1.3 编译 

  1.4 总结 

  1.5 警告的总结 

  1.6 编程提示的总结 

  1.7 问题 

  1.8 编程练习 

  第2章 基本概念 

  2.1 环境 

  2.1.1 翻译 

  2.1.2 执行 

  2.2 词法规则 

  2.2.1 字符 

  2.2.2 注释 

  2.2.3 自由形式的源代码 

  2.2.4 标识符 

  2.2.5 程序的形式 

  2.3 程序风格 

  2.4 总结 

  2.5 警告的总结 

  2.6 编程提示的总结 

  2.7 问题 

  2.8 编程练习 

  第3章 数据 

  3.1 基本数据类型 

  3.1.1 整型家族 

  3.1.2 浮点类型 

  3.1.3 指针 

  3.2 基本声明 

  3.2.1 初始化 

  3.2.2 声明简单数组 

  3.2.3 声明指针 

  3.2.4 隐式声明 

  3.3 typedef 

  3.4 常量 

  3.5 作用域 

  3.5.1 代码块作用域 

  3.5.2 文件作用域 

  3.5.3 原型作用域 

  3.5.4 函数作用域 

  3.6 链接属性 

  3.7 存储类型 

  3.8 static关键字 

  3.9 作用域、存储类型示例 

  3.10 总结 

  3.11 警告的总结 

  3.12 编程提示的总结 

  3.13 问题 

  第4章 语句 

  4.1 空语句 

  4.2 表达式语句 

  4.3 代码块 

  4.4 if语句 

  4.5 while语句 

  4.5.1 break和continue语句 

  4.5.2 while语句的执行过程 

  4.6 for语句 

  4.7 do语句 

  4.8 switch语句 

  4.8.1 switch中的break语句 

  4.8.2 default子句 

  4.8.3 switch语句的执行过程 

  4.9 goto语句 

  4.10 总结 

  4.11 警告的总结 

  4.12 编程提示的总结 

  4.13 问题 

  4.14 编程练习 

  第5章 操作符和表达式 

  5.1 操作符 

  5.1.1 算术操作符 

  5.1.2 移位操作符 

  5.1.3 位操作符 

  5.1.4 赋值 

  5.1.5 单目操作符 

  5.1.6 关系操作符 

  5.1.7 逻辑操作符 

  5.1.8 条件操作符 

  5.1.9 逗号操作符 

  5.1.10 下标引用、函数调用和结构成员 

  5.2 布尔值 

  5.3 左值和右值 

  5.4 表达式求值 

  5.4.1 隐式类型转换 

  5.4.2 算术转换 

  5.4.3 操作符的属性 

  5.4.4 优先级和求值的顺序 

  5.5 总结 

  5.6 警告的总结 

  5.7 编程提示的总结 

  5.8 问题 

  5.9 编程练习 

  第6章 指针 

  6.1 内存和地址 

  6.2 值和类型 

  6.3 指针变量的内容 

  6.4 间接访问操作符 

  6.5 未初始化和非法的指针 

  6.6 NULL指针 

  6.7 指针、间接访问和左值 

  6.8 指针、间接访问和变量 

  6.9 指针常量 

  6.10 指针的指针 

  6.11 指针表达式 

  6.12 实例 

  6.13 指针运算 

  6.13.1 算术运算 

  6.13.2 关系运算 

  6.14 总结 

  6.15 警告的总结 

  6.16 编程提示的总结 

  6.17 问题 

  6.18 编程练习 

  第7章 函数 

  7.1 函数定义 

  7.2 函数声明 

  7.2.1 原型 

  7.2.2 函数的缺省认定 

  7.3 函数的参数 

  7.4 ADT和黑盒 

  7.5 递归 

  7.5.1 追踪递归函数 

  7.5.2 递归与迭代 

  7.6 可变参数列表 

  7.6.1 stdarg宏 

  7.6.2 可变参数的限制 

  7.7 总结 

  7.8 警告的总结 

  7.9 编程提示的总结 

  7.10 问题 

  7.11 编程练习 

  第8章 数组 

  8.1 一维数组 

  8.1.1 数组名 

  8.1.2 下标引用 

  8.1.3 指针与下标 

  8.1.4 指针的效率 

  8.1.5 数组和指针 

  8.1.6 作为函数参数的数组名 

  8.1.7 声明数组参数 

  8.1.8 初始化 

  8.1.9 不完整的初始化 

  8.1.10 自动计算数组长度 

  8.1.11 字符数组的初始化 

  8.2 多维数组 

  8.2.1 存储顺序 

  8.2.2 数组名 

  8.2.3 下标 

  8.2.4 指向数组的指针 

  8.2.5 作为函数参数的多维数组 

  8.2.6 初始化 

  8.2.7 数组长度自动计算 

  8.3 指针数组 

  8.4 总结 

  8.5 警告的总结 

  8.6 编程提示的总结 

  8.7 问题 

  8.8 编程练习 

  第9章 字符串、字符和字节 

  9.1 字符串基础 

  9.2 字符串长度 

  9.3 不受限制的字符串函数 

  9.3.1 复制字符串 

  9.3.2 连接字符串 

  9.3.3 函数的返回值 

  9.3.4 字符串比较 

  9.4 长度受限的字符串函数 

  9.5 字符串查找基础 

  9.5.1 查找一个字符 

  9.5.2 查找任何几个字符 

  9.5.3 查找一个子串 

  9.6 高级字符串查找 

  9.6.1 查找一个字符串前缀 

  9.6.2 查找标记 

  9.7 错误信息 

  9.8 字符操作 

  9.8.1 字符分类 

  9.8.2 字符转换 

  9.9 内存操作 

  9.10 总结 

  9.11 警告的总结 

  9.12 编程提示的总结 

  9.13 问题 

  9.14 编程练习 

  第10章 结构和联合 

  10.1 结构基础知识 

  10.1.1 结构声明 

  10.1.2 结构成员 

  10.1.3 结构成员的直接访问 

  10.1.4 结构成员的间接访问 

  10.1.5 结构的自引用 

  10.1.6 不完整的声明 

  10.1.7 结构的初始化 

  10.2 结构、指针和成员 

  10.2.1 访问指针 

  10.2.2 访问结构 

  10.2.3 访问结构成员 

  10.2.4 访问嵌套的结构 

  10.2.5 访问指针成员 

  10.3 结构的存储分配 

  10.4 作为函数参数的结构 

  10.5 位段 

  10.6 联合 

  10.6.1 变体记录 

  10.6.2 联合的初始化 

  10.7 总结 

  10.8 警告的总结 

  10.9 编程提示的总结 

  10.10 问题 

  10.11 编程练习 

  第11章 动态内存分配 

  11.1 为什么使用动态内存分配 

  11.2 malloc和free 

  11.3 calloc和realloc 

  11.4 使用动态分配的内存 

  11.5 常见的动态内存错误 

  11.6 内存分配实例 

  11.7 总结 

  11.8 警告的总结 

  11.9 编程提示的总结 

  11.10 问题 

  11.11 编程练习 

  第12章 使用结构和指针 

  12.1 链表 

  12.2 单链表 

  12.2.1 在单链表中插入 

  12.2.2 其他链表操作 

  12.3 双链表 

  12.3.1 在双链表中插入 

  12.3.2 其他链表操作 

  12.4 总结 

  12.5 警告的总结 

  12.6 编程提示的总结 

  12.7 问题 

  12.8 编程练习 

  第13章 高级指针话题 

  13.1 进一步探讨指向指针的指针 

  13.2 高级声明 

  13.3 函数指针 

  13.3.1 回调函数 

  13.3.2 转移表 

  13.4 命令行参数 

  13.4.1 传递命令行参数 

  13.4.2 处理命令行参数 

  13.5 字符串常量 

  13.6 总结 

  13.7 警告的总结 

  13.8 编程提示的总结 

  13.9 问题 

  13.10 编程练习 

  第14章 预处理器 

  14.1 预定义符号 

  14.2 #define 

  14.2.1 宏 

  14.2.2 #define替换 

  14.2.3 宏与函数 

  14.2.4 带副作用的宏参数 

  14.2.5 命名约定 

  14.2.6 #undef 

  14.2.7 命令行定义 

  14.3 条件编译 

  14.3.1 是否被定义 

  14.3.2 嵌套指令 

  14.4 文件包含 

  14.4.1 函数库文件包含 

  14.4.2 本地文件包含 

  14.4.3 嵌套文件包含 

  14.5 其他指令 

  14.6 总结 

  14.7 警告的总结 

  14.8 编程提示的总结 

  14.9 问题 

  14.10 编程练习 

  第15章 输入/输出函数 

  15.1 错误报告 

  15.2 终止执行 

  15.3 标准I/O函数库 

  15.4 ANSI I/O概念 

  15.4.1 流 

  15.4.2 文件 

  15.4.3 标准I/O常量 

  15.5 流I/O总览 

  15.6 打开流 

  15.7 关闭流 

  15.8 字符I/O 

  15.8.1 字符I/O宏 

  15.8.2 撤销字符I/O 

  15.9 未格式化的行I/O 

  15.10 格式化的行I/O 

  15.10.1 scanf家族 

  15.10.2 scanf格式代码 

  15.10.3 printf家族 

  15.10.4 printf格式代码 

  15.11 二进制I/O 

  15.12 刷新和定位函数 

  15.13 改变缓冲方式 

  15.14 流错误函数 

  15.15 临时文件 

  15.16 文件操纵函数 

  15.17 总结 

  15.18 警告的总结 

  15.19 编程提示的总结 

  15.20 问题 

  15.21 编程练习 

  第16章 标准函数库 

  16.1 整型函数 

  16.1.1 算术

  16.1.2 随机数 

  16.1.3 字符串转换

  16.2 浮点型函数 

  16.2.1 三角函数

  16.2.2 双曲函数

  16.2.3 对数和指数函数

  16.2.4 浮点表示形式

  16.2.5 幂

  16.2.6 底数、顶数、绝对值和余数

  16.2.7 字符串转换

  16.3 日期和时间函数 

  16.3.1 处理器时间

  16.3.2 当天时间

  16.4 非本地跳转

  16.4.1 实例 

  16.4.2 何时使用非本地跳转 

  16.5 信号 

  16.5.1 信号名

  16.5.2 处理信号

  16.5.3 信号处理函数 

  16.6 打印可变参数列表

  16.7 执行环境 

  16.7.1 终止执行

  16.7.2 断言 

  16.7.3 环境

  16.7.4 执行系统命令

  16.7.5 排序和查找 

  16.8 locale 

  16.8.1 数值和货币格式

  16.8.2 字符串和locale

  16.8.3 改变locale的效果 

  16.9 总结 

  16.10 警告的总结 

  16.11 编程提示的总结 

  16.12 问题 

  16.13 编程练习 

  第17章 经典抽象数据类型 

  17.1 内存分配 

  17.2 堆栈 

  17.2.1 堆栈接口 

  17.2.2 实现堆栈 

  17.3 队列 

  17.3.1 队列接口 

  17.3.2 实现队列 

  17.4 树 

  17.4.1 在二叉搜索树中插入 

  17.4.2 从二叉搜索树删除节点 

  17.4.3 在二叉搜索树中查找 

  17.4.4 树的遍历 

  17.4.5 二叉搜索树接口 

  17.4.6 实现二叉搜索树 

  17.5 实现的改进 

  17.5.1 拥有超过一个的堆栈 

  17.5.2 拥有超过一种的类型 

  17.5.3 名字冲突 

  17.5.4 标准函数库的ADT 

  17.6 总结 

  17.7 警告的总结 

  17.8 编程提示的总结 

  17.9 问题 

  17.10 编程练习 

  第18章 运行时环境 

  18.1 判断运行时环境 

  18.1.1 测试程序 

  18.1.2 静态变量和初始化 

  18.1.3 堆栈帧 

  18.1.4 寄存器变量 

  18.1.5 外部标识符的长度 

  18.1.6 判断堆栈帧布局 

  18.1.7 表达式的副作用 

  18.2 C和汇编语言的接口 

  18.3 运行时效率 

  18.4 总结 

  18.5 警告的总结 

  18.6 编程提示的总结 

  18.7 问题 

  18.8 编程练习 

  附录 部分问题答案 

  索引

3编辑推荐

编辑

《C和指针(英文版)》提供与C语言编程相关的全面资源和深入讨论,通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。《C和指针(英文版)》适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。

4作者简介

编辑

Kenneth Reek是罗彻斯特理工大学计算机科学教授。他是一位经验丰富的C程序员,曾为多家公司担任过技术顾问。他讲授的课程有操作系统、数据通信、计算机网络、形式语言、算法分析和交换系统等。本书正是基于他9年的编程及教学的经验积累。

5名人推荐

编辑

我竭尽全力地推荐这本我所见过的最好的C编程入门图书。作者深知读者所需,并为他们打下良好基础。如果你已经开始学习C语言但始终不得要领,不妨试一试《C和指针(英文版)》。
——Francis Glassborow,ACCU主席

这篇关于必读书目:C和指针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/340020

相关文章

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

C和指针:字符串

字符串、字符和字节 字符串基础 字符串就是一串零个或多个字符,并且以一个位模式为全0的NUL字节结尾。 字符串长度就是字符串中字符数。 size_t strlen( char const *string ); string为指针常量(const修饰string),指向的string是常量不能修改。size_t是无符号数,定义在stddef.h。 #include <stddef.h>

【C++】作用域指针、智能指针、共享指针、弱指针

十、智能指针、共享指针 从上篇文章 【C++】如何用C++创建对象,理解作用域、堆栈、内存分配-CSDN博客 中我们知道,你的对象是创建在栈上还是在堆上,最大的区别就是对象的作用域不一样。所以在C++中,一旦程序进入另外一个作用域,那其他作用域的对象就自动销毁了。这种机制有好有坏。我们可以利用这个机制,比如可以自动化我们的代码,像智能指针、作用域锁(scoped_lock)等都是利用了这种机制。

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员,每个成员可能具有不同的类型。 数组的元素长度相同,可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同,所以不能用下标来访问它们。成员有自己的名字,可以通过名字访问成员。 结构声明 在声明结构时,必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

Qt: 详细理解delete与deleteLater (避免访问悬空指针导致程序异常终止)

前言 珍爱生命,远离悬空指针。 正文 delete 立即删除:调用 delete 后,对象会立即被销毁,其内存会立即被释放。调用顺序:对象的析构函数会被立即调用,销毁该对象及其子对象。无事件处理:如果在对象销毁过程中还涉及到信号和槽、事件处理等,直接 delete 可能会导致问题,尤其是在对象正在处理事件时。适用场景:适用于在确定对象已经不再被使用的情况下,并且不涉及异步处理或事件循环中的

C语言进阶版第8课—指针(2)

文章目录 1. 数组名的理解2. 指针访问数组3. 一维数组传参本质4. 冒泡排序5. 二级指针6. 指针数组7. 指针数组模拟二维数组 1. 数组名的理解 sizeof(数组名)— 这里的数组名代表整个数组,计算的也是整个数组的大小&数组名 — 这里的数组名代表是整个数组,取出的是整个数组的地址除了以上两种,其他任何地方使用数组名,数组名都表示首元素的地址 //数组名

有希带你深入理解指针(4)

目录 前言🥰1.回调函数😺1.1回调函数的概念😋 2.qsort使用🤯2.1什么是qsort👻2.2 qsort函数的使用🧐 3.模拟实现qsort😎 前言🥰 本篇文章是对指针知识的进一步讲解,如果对部分知识有不了解的地方可以移步前文进行学习!😶‍🌫️ 1.回调函数😺 1.1回调函数的概念😋 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的