指 针 是 一 个 特 殊 的 变 量 , 它 里 面 存 储 的 数 值 被 解 释 成 为 内 存 里 的 一 个 地 址 。要 搞 清 一 个 指 针 需 要 搞 清 指 针 的 四 方 面 的 内 容 : 指 针 的 类 型 、 指 针 所 指 向 的类 型 、 指 针 的 值 或 者 叫 指 针 所 指 向 的 内 存 区 、 指 针 本 身 所 占 据 的 内 存。
1 指针的类型
从 语 法 的 角 度 看 , 只需 把将指 针 声 明 语 句 里 的 指 针 名 字 去 掉 , 剩 下 的 部
分 就 是 这 个 指 针 的 类 型 。 这 是 指 针 本 身 所 具 有 的 类 型 。
例如:
2 指针所指向的的例子
从 语 法 上 看 , 你 只 须 把 指 针 声 明 语 句 中 的 指 针 名 字 和 名 字 左 边 的 指 针 声明 符* 去 掉 , 剩 下 的 就 是 指 针 所 指 向 的 类 型。
例如:
在 指 针 的 算 术 运 算 中 , 指 针 所 指 向 的 类 型 有 很 大 的 作 用 。
注:指 针 的 类 型( 即 指 针 本 身 的 类 型 ) 和 指 针 所 指 向 的 类 型 是 两 个 概 念
3 指 针 的 值
指 针 的 值 是 指 针 本 身 存 储 的 数 值 ,这 个 值 将 被 编 译 器 当 作 一 个 地 址 , 而不 是 一 个 一 般 的 数 值 。 在 32 位 程 序 里 , 所 有 类 型 的 指 针 的 值 都 是 一个32 位整 数 , 因为 32 位 程 序 里 内 存 地 址 全 都是32 位 长。指 针 所 指 向 的 内 存 区 就是 从 指 针 的 值 所 代 表 的 那 个 内 存 地 址 开 始 , 长 度为 sizeof( 指 针 所 指 向 的 类型 ) 的 一 片 内 存 区 。 我 们 说 一 个 指 针 的 值是 XX , 就 相 当 于 说 该 指 针 指向 了 以 XX 为 首 地 址 的 一 片 内 存 区 域 ; 我 们 说 一 个 指 针 指 向 了 某 块 内 存 区 域 ,就 相 当 于 说 该 指 针 的 值 是 这 块 内 存 区 域 的 首 地 址 。
指 针 所 指 向 的 内 存 区 和 指 针 所 指 向 的 类 型 是 两 个 完 全 不 同 的 概 念 。
4 指 针 本 身 所 占 据 的 内 存
指 针 本 身 占 的 内 存 只需用函数sizeof( 指 针 的 类 型) ) 测 一 下就 知 道 了 。
例如: