指针的艺术

-
【作 者】蔡明志 著
【I S B N 】978-7-5084-6897-6
【责任编辑】杨庆川
【适用读者群】科技
【出版时间】2009-10-01
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版
【页 数】
【千字数】
【印 张】
【定 价】¥59.8
【丛 书】魅力圣经
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书主要探讨C语言指针的基本概念及其与变量、数组、结构体和文件之间的应用,同时剖析C++、C++/CLR、Java、Visual C#及Visual Basic中的引用(Reference),并分别以指针和引用(Reference)实现链表、堆栈与队列。
全书共七篇。针对以下14个主题,分别在C、C++、C++/CLR、Java、Visual C#及Visual Basic程序语言中比较其用法:变量的定义、算术运算符、关系运算符、逻辑运算符、输出函数、输入函数、选择结构、循环结构、数组、函数调用、指针与引用(Reference)、指向或引用(Reference)到空的表示法、动态分配内存、回收内存。
本书适合C、C++、C++/CLR、Java、Visual C#及Visual Basic程序设计人员使用,希望通过本书的内容,能够帮助读者透彻理解指针的概念并在实践中能够灵活运用。书中所有范例代码均可在配书光盘中找到。
本书为经台湾碁峰资讯股份有限公司独家授权发行的中文简体版。本书中文简体字版在中国大陆之专有出版权属中国水利水电出版社所有。在没有得到本书原版出版者和本书出版者书面许可时,任何单位和个人不得擅自摘抄、复制本书的一部分或全部以任何方式(包括资料和出版物)进行传播。本书原版版权属碁峰资讯股份有限公司。版权所有,侵权必究。
C语言的特色就是“指针”(Pointer),让人又爱又恨,让熟悉它的人,将它比作是天上那一颗最美的星,而让不懂的人,头上冒星星,同样是星星,但却有不同的情境。
“指针好难,都不知道该怎么学”,常常会有人对我讲这句话,并问我有没有好方法可以“领悟”它。说实在的,真是惭愧,从1983年进入信息管理领域,因为工作关系,接触C,接着在1985年到东吴大学计算器科学系(现在改为信息管理系)兼课,在1987年将上课的讲义和心得,出版了我的第一本书《C程序语言及其应用》,算一算到现在整整有二十几年的时间了。听到指针是如此难的问题,让我心中很难过。拥护我的读者也不在少数,有些人常会跟我说,“C先生,我是看您的书长大的”。真诚地希望您们可以从书中获取一些知识。再一次的谢谢您们,一路的相陪、支持与鼓励,让我有动力再出发。
责任在我,是我的错,我没尽力将它说明白,讲清楚,使得大家有如此彷徨,裹足不前的问题。基于此,我在二、三年前就开始规划,打算编写一本以指针为中心的书,让对指针不太懂的人,可以轻易了解指针的运作原理,让懂的人可以精益求精。现在,已梦想成真,从书名《指针的艺术》,就可以知道它是您学习与深入了解指针最佳的读本。
本书内容精彩无比,除了对C语言的指针有深入的探讨外,同时也将与指针有异曲同工之妙的引用(reference)详加讨论,所以本书不仅涉及C而已,还包括C++、C++/CLR、Java、Visual C# 及Visual Basic,有关引用的主题。其中要和大家分享心得的是,原本对Visual Basic没什么好感,但此次接触它,发现也不错,若您的观念和我先前一样,不妨试试看,相信您会喜欢的。
本书是以指针为核心,以引用(reference)为辅。在C程序语言篇中,从内存的基本概念开始展开,其中依次涉及,指针与变量、指针与数组、指针与函数、指针与字符串、指针与结构体、链表、指针与文件等,希望有效引导读者进入指针的世界。为了验证指针与引用的相似功能,在之后的程序语言篇着重于如何以引用实现指针可以完成的事项,举例以引用调用完成两数对调,传递数组到某一函数及链表、堆栈等有关数据结构问题的实现。
本书的第七篇是比较篇,将C、C++、C++/CLR、Java、Visual C#及Visual Basic六种程序语言在程序语言基本架构上的主题做一比较,希望此篇可以让您一窥程序语言之美。
写本书的心情不知为什么,总是觉得很愉快,因为我已做到了可以向读者交待的事,那就是您可以从本书中轻轻松松地了解什么是指针,并告诉我,指针是天上那一颗最闪亮的星星,祝福您。
第1章 内存的基本概念 3
1-1 变量 4
1-2 一维数组 5
1-3 二维数组 9
1-4 结构体 11
1-5 问题演练 13
第2章 指针与变量 15
2-1 一颗星星:表示一把钥匙 16
2-2 两颗星星:表示两把钥匙 19
2-3 三颗星星:表示三把钥匙 21
2-4 问题演练 23
第3章 指针与数组 25
3-1 指针与一维数组 26
3-2 指针与二维数组 32
3-3 数组指针 35
3-4 为什么parr等同于*parr 36
3-5 指向数组的指针 38
3-6 多重指针 44
3-7 命令行自变量 51
3-8 调试题 54
3-9 问题演练 55
3-10 程序实战 62
第4章 指针与函数 63
4-1 函数初探 64
4-2 两数对调 64
4-3 再论传址调用 66
4-3-1 寻找数组中的最大值 66
4-3-2 一维数组的元素求和 67
4-3-3 二维数组的元素求和 69
4-4 指向函数的指针 70
4-5 返回指针的函数 72
4-6 调试题 74
4-7 问题演练 77
4-8 程序实战 77
第5章 指针与字符串 79
5-1 字符串指针 80
5-2 常用的库函数 83
5-2-1 计算字符串的长度 83
5-2-2 字符串的复制 84
5-2-3 字符串的连接 87
5-2-4 字符串的比较 88
5-3 调试题 93
5-4 程序实战 94
第6章 指针与结构体 95
6-1 指向结构体变量的指针 96
6-2 结构体指针与自增运算符 100
6-3 结构体与函数 102
6-4 自引用 105
6-5 调试题 111
6-6 问题演练 119
第7章 链表——以C程序实现 121
7-1 单向链表 122
7-2 双向链表 126
7-3 链表的应用——堆栈的实现 130
7-4 链表的应用——队列的实现 134
7-5 程序实战 138
第8章 指针与文件 139
8-1 fprintf 与fscanf函数 140
8-2 fwrite与fread函数 143
8-3 当前文件的指针指向何处 145
8-4 fgetpos与fsetpos函数 147
8-5 rewind 149
8-6 程序实战 150
第二篇 C++程序语言篇
第9章 简易Visual C++ 2008使用手册 153
第10章 C++的reference 157
10-1 变量与reference 158
10-2 两数对调 159
10-2-1 传值调用 159
10-2-2 引用调用(call by reference) 160
10-3 结构体与reference 163
10-4 类与reference 166
10-5 问题演练 171
10-6 程序实战 172
第11章 C++的this指针 173
11-1 this指针 174
11-2 股票买卖范例程序 177
11-3 程序实战 180
第12章 C++的new与delete 181
12-1 new、delete与变量 182
12-2 new、delete与数组 184
12-3 new、delete与结构体 186
12-4 new、delete与类 187
12-5 程序实战 190
第13章 C++的复制构造函数 191
13-1 复制构造函数 192
13-2 重载赋值运算符 196
13-3 程序实战 200
第14章 虚函数、指针与reference 201
14-1 虚函数 202
14-2 程序实战 205
第15章 链表——以C++程序实现 207
15-1 单向链表 208
15-2 双向链表 213
15-3 堆栈 218
15-4 程序实战 220
第三篇 C++/CLR程序语言篇
第16章 简易Visual C++/CLR使用手册 223
第17章 浅谈C++/CLR程序设计 227
17-1 可跟踪的reference 228
17-2 可跟踪的handle 228
17-3 数组 229
17-3-1 一维数组 229
17-3-2 二维数组 231
17-3-3 不规则数组 232
17-4 Interior指针 233
17-5 函数 233
17-5-1 两数对调 233
17-5-2 找出数组的最大值 236
17-5-3 计算数组的总和 237
17-5-4 计算二维数组的总和 238
17-5-5 计算不规则数组的总和 239
17-6 程序实战 240
第18章 链表——以Visual C++/CLR实现 241
18-1 以单向链表处理数据 242
18-2 以双向链表处理数据 245
18-3 使用链表实现堆栈 248
18-4 程序实战 250
第四篇 Java程序语言篇
第19章 简易JCreator使用手册 253
19-1 安装JCreator编译程序 254
19-2 编写、编译与运行程序 256
19-3 程序的调试(debug) 257
19-4 创建项目文件 258
第20章 变量、字符串与reference 259
20-1 变量与引用(reference) 260
20-2 字符串与引用(reference) 261
20-3 常用的字符串库函数 264
20-4 程序实战 267
第21章 数组与reference 269
21-1 数组初探 270
21-2 数组的复制 275
21-3 如何传送数组 278
21-4 二维数组 283
21-5 程序实战 286
第22章 类与reference 287
22-1 类与引用(reference) 288
22-2 复制构造函数 291
22-3 this指针 297
22-4 程序实战 298
第23章 链表——以Java程序实现 299
23-1 单向链表 300
23-2 双向链表 304
23-3 堆栈的操作 310
23-4 程序实战 314
第五篇 Visual C# 2008程序语言篇
第24章 简易Visual C#使用手册 317
第25章 变量与reference 321
25-1 传值调用 322
25-2 引用调用(call by reference) 323
25-3 特殊的参数out 324
25-4 程序实战 326
第26章 数组与reference 327
26-1 找出一维数组的最大值 328
26-2 一维数组的求和 329
26-3 二维数组的求和 330
26-4 不规则数组的求和 331
26-5 程序实战 332
第27章 链表——以Visual C#实现 333
27-1 数据的转换 334
27-2 单向链表 334
27-3 双向链表 338
27-4 链表的应用——堆栈的实现 342
27-5 程序实战 346
第六篇 Visual Basic 2008程序语言篇
第28章 简易Visual Basic使用手册 349
第29章 函数与reference 353
29-1 传值调用(call by value) 354
29-2 引用调用(call by reference) 354
29-3 程序实战 355
第30章 数组与reference 357
30-1 找出数组的最大值 358
30-2 数组的求和 360
30-2-1 一维数组的求和 360
30-2-2 二维数组的求和 361
30-3 不规则数组 362
30-4 程序实战 364
第31章 链表——以Visual Basic实现 365
31-1 链表的基本概念 366
31-2 单向链表 368
31-3 双向链表 372
31-4 链表的应用——堆栈的实现 376
31-5 程序实战 380
第七篇 比较篇
附录A 解 答 393
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- 程序思维与C语言实现 [张祎 王俊海 吕波]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- C语言程序设计 [姜雪]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- C语言同步案例习题精解 [主编 肖朝晖]
- C语言程序设计(微课版) [主编 夏启寿]
- C语言程序设计实践教程 [夏启寿]
- 单片机应用技术项目教程(C语言版)(第三版) [主编 郭志勇]
- 数据结构——C语言(微课版) [主编 梁海英]
- C程序设计简明教程 [黄能耿 黄致远 编著]
- C语言程序设计实验指导与实训 [主编 倪燃]
- 单片机原理及应用技术(C语言版) [周国运 鲁庆宾 赵天翔 编著]
- C#程序设计教程 [主编 李祥琴]
- C#数据库编程技术 [主编 顾家铭]
- 基于C#的可视化编程基础 [主编 张蕾蕾 黄健]
- C语言程序设计 [主编 杨娟 万青]
- 物联网编程与应用(C#) [主编 王浩 王伟旗]
- C语言程序设计 [主编 王婧 刘政宇]
- Visual Basic程序设计教程 [主编 郭秀娟 于全通]
- C语言程序设计项目化教程 [主编 彭琦伟 周威]
- C语言程序设计案例教程 [主 编 刘素芬 张建军 王宏斌]
- Visual Basic.NET程序设计上机实践教程 [主编 何振林 罗奕]
- Visual Basic.NET程序设计 [主编 何振林 罗奕]
- C语言程序设计(第二版) [主编 丁红 王辉]