c语言使用指针时段错误,浅析C语言指针使用中的几个常见错误

、伺 【人间创新】

浅析 语 言指 针 使 用 中 的几 个 常见 错误

张 尔 谦

(武警 警 官学 院 ,四川 成 都 )

摘要 :指针是 语言 中的一个重要概念 ,也可以说是 语言的灵魂。指针的引入使 语言变得高效和灵活 ,同时也给使用者尤其是初学者带

来 一 定 的 困 惑 。本 文对 语 言 指 针 使 用 中 的 几 个 常见 错 误 进 行 了分 析 。

关键 词 :指 针 ;数 组 :语 言

中 图分 类 号 :

文 献 标 识 码 :

文 章 编 号 : ()一

指 针是 语 言中 的一个 重要概 念 ,也可 以说是 语 言的灵 魂 。 指针 的引入 使 语 言 变得 高 效 和灵 活 ,同 时也 给 使用 者 尤 其是 初 学者带 来一 定 的困惑 。在 教学 实 践 中经 常 会发 现 语 言 指 针使 用 中的一 些常 见 的具有典 型性 的错 误 ,现 列举 分析如 下 。

一 、 间接 引 用 未初 始 化 的指 针

对 于指 针变量 如果 仅进 行 了定 义 而未 对 其 进 行初 始 化 ,则 不 可 对其 进行 间接访 问 。例如 ; ;,这 是初 学 者常 犯 的一个 错误 。对 于指针 变量 进 行 定 义 ,仅 仅是 为 分 配 了一 个 存 储空 间 ,而这个 存储 空 间里 所存 储 的值 在 没有 对 进行 初 始 化 之 前是 不可 预知 的 ,而 这个 不 可 预知 的 值 既然 存 储 在 变量 中就 自然被 理解 为是 一个地 址值 。在这 种情 况下 ,执 行 语句 ; 就会 改 写 以这个存 储 于 中 的不 可预 知 的值 为地 址 的 存储 单 元 里 的内容 ,而该 存储 单元 中可能 存 储着 一 个 重 要 的 数据 ,这 样 就 有 可 能破 坏系 统 的运行 ,造成严 重后 果 。把上述 错误 语句 改 为 ,;; ;由于在对 进 行 间接 引 用之 前 已 对其 进 行初 始 化 ,使 指针 指 向整 型变量 ,则不 会 出现上述 错误 。

二 、不 能 正 确 区别 指 针 变 量 与 数 组 名 的 使 用 方 法 指针 变量 是用 来存 放地 址 值 的 ,而 数组 名 代 表该 数 组 第 一 个

元素 的地 址 。例 如 : , ,,,,;其 中 的值 即为 数 组

中第 一个 元素 的地 址 即 ,可 以将 指针 初始 化 为 (即 ;等 价 于 ;),这 样指针 就 指 向数组 的第 一个 元 素 。但 是必 须 注意 是 可 以存放 地址值 的变 量而 则 是一 个 地址 常量 。请看 下 例 :

() , ,,,,; (;; ) (” ”, ¥ ( ));

该程 序段不 能 输 出数组 的元 素 的值 ,编 译 时会 给 出 出错 提 示 “ ” (自增 运算 符 只 能应 用 于左 值 )原 因 在 于 是 一个 常量 ,而常 量 不 能 作 为左 值 ,即不 能 出现 在 赋 值 符 的 左侧 ,不能 进行 自增 运算 。这是 数组 名与 指针变 量 的重要 区别 。

将上述错误程序改写如下 ,则能正确输 出数组 的各个元 素的值 :

() ,, ,,,,;

( ;; ) (” ”, ());

三 、不能正确 区别 字符指针变量与字符数 组的使用方法

字符指 针变 量用 来指 向 一个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值