求 高手 解答 ， 关于 返回 指针 的 函数
计算机 组成 原理 →DOS 命令 → 汇编 语言 →C 语言 （ 不 包括 C++ ） 、 代码 书写 规范 → 数据 结构 、 编译 原理 、 操作 系统 → 计算机 网络 、 数据库 原理 、 正则 表达式 → 其它 语言 （ 包括 C ++ ） 、 架构 … … 对 学习 编程 者 的 忠告 ： 眼 过 千 遍 不 如 手 过 一 遍 ！ 书 看 千 行 不 如 手 敲 一 行 ！ 手 敲 千 行 不 如 单步 一 行 ！ 单步源 代码 千 行 不 如 单步 对应 汇编 一 行 ！ VC 调试 时 按 Alt + 8 、 Alt + 7 、 Alt + 6 和 Alt + 5 , 打开 汇编 窗口 、 堆栈 窗口 、 内存 窗口 和 寄存器 窗口 看 每 句 C 对应 的 汇编 、 单步 执行 并 观察 相应 堆栈 、 内存 和 寄存器 变化 ， 这样 过 一 遍 不 就 啥 都 明白 了 吗 。 对 VC 来说 ， 所谓 ‘ 调试 时 ’ 就 是 编译 连接 通过 以后 ， 按 F10 或 F11 键 单步 执行 一 步 以后 的 时候 ， 或者 在 某 行 按 F9 设 了 断点 后 按 F5 执行 停 在 该 断点处 的 时候 。 （ Turbo C 或 Borland C 用 Turbo Debugger 调试 , Linux 或 Unix 下 用 GDB 调试 时 , 看 每 句 C 对应 的 汇编 并 单步 执行 观察 相应 内存 和 寄存器 变化 。 ） 想 要 从 本质 上 理解 C 指针 ， 必须 学习 汇编 以及 C 和 汇编 的 对应 关系 。 从 汇编 的 角度 理解 和 学习 C 语言 的 指针 ， 原本 看似 复杂 的 东西 就 会 变 得 非常 简单 ！ 指针 即 地址 。 “ 地址 又 是 啥 ？ ” “ 只 能 从 汇编 语言 和 计算机 组成 原理 的 角度 去 解释 了 。 ” 但 我 又 不得不 承认 ： 有 那么 些 人 喜欢 或者 适合 用 “ 先 具体 再 抽象 ” 的 方法 学习 和 理解 复杂 事物 ； 而 另 一些 人 喜欢 或者 适合 用 “ 先 抽象 再 具体 ” 的 方法 学习 和 理解 复杂 事物 。 而 我 本人 属 前者 。 这 辈子 不 看 内存 地址 和 内存 值 ； 只 画 链表 、 指针 示意图 ， 画 堆 栈 示意图 ， 画 各 种 示意图 ， 甚至 自己 没 画 过 而 只 看 过 书 上 的 图 … … 能 从 本质 上 理解 指针 、 理解 函数 参数 传递 吗 ？ 本人 深表 怀疑 ！ 这 辈子 不 种 麦 不 收 麦 不 将 麦粒 拿去 磨面 ； 只 吃 馒头 、 吃 面条 、 吃 面包 、 … … 甚至 从 没 看 过 别人 怎么 蒸 馒头 ， 压 面条 ， 烤 面包 ， … … 能 从 本质 上 理解 面粉 、 理解 面食 吗 ？ 本人 深表 怀疑 ！ ！ 提醒 ： “ 学习 用 汇编 语言 写 程序 ” 和 “ VC 调试 ( TC 或 BC 用 TD 调试 ) 时 按 Alt + 8 、 Alt + 7 、 Alt + 6 和 Alt + 5 , 打开 汇编 窗口 、 堆栈 窗口 、 内存 窗口 和 寄存 器 窗口 看 每 句 C 对应 的 汇编 、 单步 执行 并 观察 相应 堆栈 、 内存 和 寄存 器 变化 ， 这样 过 一 遍 不 就 啥 都 明白 了 吗 。 （ Linux 或 Unix 下 可以 在 用 GDB 调试 时 , 看 每 句 C 对应 的 汇编 并 单步 执行 观察 相应 内存 和 寄存器 变化 。 ） 想 要 从 本质 上 理解 C 指针 ， 必须 学习 C 和 汇编 的 对应 关系 。 ” 不 是 一 回 事 ！ 不 要 迷信 书 、 考题 、 老师 、 回帖 ； 要 迷信 CPU 、 编译器 、 调试器 、 运行 结果 。 并 请 结合 “ 盲人 摸 太阳 ” 和 “ 驾 船 出海 时 一定 只 带 一 个 指南针 。 ” 加以 理解 。 任何 理论 、 权威 、 传说 、 真理 、 标准 、 解释 、 想象 、 知识 … … 都 比 不 上 摆 在 眼前 的 事实 ！ 有 人 说 一 套 做 一 套 ， 你 相信 他 说 的 还是 相信 他 做 的 ？ 其实 严格 来 说 这 个 世界 上 古往今来 所有 人 都 是 说 一 套 做 一 套 ， 不 是 吗 ？ 不 要 写 连 自己 也 预测 不 了 结果 的 代码 ！ 电脑 内存 或 文件 内容 只是 一 个 一 维 二进制 字节 数 组 及其 对应 的 二进制 地址 ； 人脑 才 将 电脑 内存 或 文件 内容 中 的 这个 一 维 二进制 字节 数 组 及其 对应 的 二进制 地址 的 某些 部分 看成 是 整数 、 有 符号 数 / 无 符号 数 、 浮 点 数 、 复数 、 英文 字母 、 阿拉伯 数字 、 中文 / 韩文 / 法文 … … 字符 / 字符串 、 汇编 指令 、 函数 、 函数 参数 、 堆 、 栈 、 数组 、 指针 、 数组 指针 、 指针 数组 、 数组 的 数组 、 指针 的 指针 、 二 维 数 组 、 字符 点阵 、 字符 笔画 的 坐标 、 黑白 二 值 图片 、 灰度 图片 、 彩色 图片 、 录音 、 视频 、 指纹 信息 、 身份证 信息 … … 十字 链表 交换 任意 两 个 节点 C 源 代码 （ C 指针 应用 终极 挑战 ） http://download.csdn.net/detail/zhao4zhong1/5532495
