C指针

简介

C是一门重要的编程语言,一直以来备受关注。C语言的核心是指针,这门语言的灵活性和超长之处很大一部分都源于指针。指针提供了动态操控内存的机制,强化了对数据结构的支持,且实现了访问硬件的功能。不过,指针的这种能力和灵活性是有代价的,它很难掌握。

指针非常复杂,值得我们深入讨论。本书专门研究指针,旨在让读者对指针的理解更加深入。这种理解在某种程度上需要读者会使用程序栈和堆,且会在相关上下文背景下使用指针。人们对不同领域知识的理解程度不同,有大体粗略了解,也有深入透彻的理解。要想对C语言的理解达到更高的层次,就必须有坚实的指针和内存管理基础。

理解指针的关键在于理解C程序如何管理内存。归根结底,指针包含的就是内存地址。不理解组织和管理内存的方式,就很难理解指针的工作方式。为此,只要对解释指针的原理有帮助,我们就会说明内存的组织方式。牢牢掌握了内存及其组织方式,理解指针就会容易很多。

目标读者

C语言是块结构的语言,其过程式编程方法在C++和Java等很多现代语言中也被采用。这些语言都要用到程序栈和堆,也都会用到指针,只不过通常用引用来包装。阅读本书要求你对C有最基本的了解。如果你正在学C,那么本书能为你提供比其他书更全面的指针和内存的知识,能扩大你的C知识面,也能让你发现自己在C上的薄弱环节。如果你是有经验的C或者C++程序员,本书能帮你填补对C语言理解的空白,也能强化你对这两门语言工作原理的理解,从而让你成长为更优秀的程序员。如果你是C#或者Java开发者,本书能让你更好地理解C,也能让你更加透彻地认识面向对象语言如何处理栈和堆。

教程目录

为什么要精通C指针
C指针声明
阅读C指针声明
C指针地址操作符
打印C指针的值
null指针和void指针
C指针的长度和类型
C指针预定义类型
C指针操作符
C指针算术运算
C指针比较操作符
C指针多层引用
C常量与指针
C动态分配内存
C内存泄漏
C动态内存分配函数
C malloc函数
C calloc函数
C realloc函数
C alloca函数
C free函数
C指针重复释放
C堆和系统内存
C迷途指针
C程序栈
C栈帧的组织
C指针传递数据
C值传递数据
C传递指向常量的指针
C函数返回指针
C局部数据指针
C传递空指针
C传递指针的指针
C声明函数指针
C使用函数指针
C传递函数指针
C返回函数指针
C使用函数指针数组
C比较函数指针
C转换函数指针
C数组
C指针指向数组
C指针和数组的差别
C用malloc创建数组
C用realloc调整数组长度
C传递一维数组
C指针数组
C指针和多维数组
C传递多维数组
C动态分配二维数组
C不规则数组和指针
C字符串
C字符串初始化
C比较字符串
C复制字符串
C拼接字符串
C字符串传递
C返回字符串
C函数指针和字符串
C指针和结构体
C为结构体分配内存
C结构体释放
C避免malloc/free开销
C用指针支持数据结构
C单链表
C指针支持队列
C指针支持栈
C指针支持树
C指针声明和初始化问题
C指针的使用问题
C内存释放问题
C使用静态分析工具
C指针转换
C别名、强别名和restrict
C线程间共享指针
C函数指针支持回调
C创建和使用不透明指针
C中的多态

赞(3)

评论 抢沙发

评论前必须登录!

 

C指针