彻底搞定 C 指针
彻底搞定 C 指针
(完全版 ·修订增补版)
(完全版 ·修订增补版)
著=姚云飞
著=姚云飞
修订=丁正宇
修订=丁正宇
前言
姚云飞先生的大作《彻底搞定 C 指针》是互联网上中文 C/C++界内为数不
多的专门阐述 C 指针问题的优秀文献资源之一。
正如书名所示,对于那些学习了 C 基础知识却始终对 C 指针不得要领的读
者,或者那些已经长期被 C 指针困扰的读者,作者致力于彻底解决他们在这方
面的难题。为了达到这个目的,作者运用了许多生动与亲切的例子,深入浅出地
讲透了 C 指针的原理与机制,并辅以编程实践中最常用的惯例和技巧作为示范。
《彻底搞定C 指针》是互联网上下载次数最多的针对 C 指针问题的中文资
源之一。现在,经由修订者的重新修订、编辑与排版,本书的《完全版·修订增
补版》全新登场。新版本中的技术用语更加清楚严谨,行文的结构层次更加分明,
例子中的程序代码均通过编译以测试其精准性。修订者希望这份新的成果能够令
各位读者在 C 编程方面获得更多的益处,同时也期待着读者们宝贵的反馈信息。
再次向姚云飞先生致敬!
1
目 录
前言 1
目 录 2
修订说明3
A类:规范化3
B类:更正3
C类:明晰化4
D类:编译器4
第壹篇 变量的内存实质5
1.先来理解C语言中变量的实质 5
2 .赋值给变量6
3 .变量在哪里?(即我想知道变量的地址)7
第贰篇 指针是什么?8
1.指针是什么东西8
第叁篇 指针与数组名11
1. 通过数组名访问数组元素11
2 .通过指针访问数组元素11
3 .数组名与指针变量的区别12
4 .声明指针常量13
第肆篇const int *pi与int *const pi的区别14
1. 从const int i 说起 14
2 . const int *pi的语义15
3. 再看int *const pi16
4 .补充三种情况18
第伍篇 函数参数的传递20
1.三道考题20
2. 函数参数传递方式之一:值传递23
3. 函数参数传递方式之二:地址传递26
4. 函数参数传递方式之三:引用传递27
第陆篇 指向另一指针的指针30
1. 回顾指针概念30
2 .指针的地址与指向另一指针地址的指针31
3. 一个应用实例32
第柒篇 函数名与函数指针37
1. 通常的函数调用37
2 .函数指针变量的声明38
3 .通过函数指针变量调用函数38
4 .调用函数的其它书写格式39
5 .定义某一函数的指针类型42
6. 函数指针作为某个函数的参数44
2
修订说明
A类:规范化
A1. C 程序的代码段,以及行文中的代码的字体,均统一调整为 Courier New,例如:
- 类型说明符“int”、变量名“a”、地址表达式“&a”、函数名“Exchg1”
等等均作调整。
A2. 行为中的代码段,按一般行文处理缩进;代码段内部规整缩进。
A3. 规整 C 语句,例如:
- 语句中形如“a=b+c(x,y)”的,将调整为形如“a = b + c(x, y)”的
新样式,即在运算符、用来间隔参数的逗号等的旁边补足空白,令语句的可读
性更强。
- 补全语句结尾的“;”。
A4. 规整行文语序,令其更加通顺。
A5. 规整术语写法,例如:
- “C、C++ ”调整为“C/C++ ”。
B类:更正
B1. 更正术语,例如:
- “申明”调整为“声明”。
B2. 规整 C 技术用语,例如:
-