全面详解C语言指针

帮助你最全面的了解指针的用法

C语言指针导学

全面详解C语言指针

前言

有人说,C语言成也指针败也指针,我觉得不无道理。指针确实是C语言的精髓,它快捷,高效,被广泛的应用着,而正是它的灵活,也导致它变得相对复杂,它曾一度被指像goto语句一样难用,但指针有时是C语言中表达计算的唯一方法,而且相较其他方法指针通常可以产生更高效、更紧凑的代码,所以正确地,规范地使用指针,是每个C语言使用者必修的功课。想要做到这一点,首先在概念上要清晰,我会在后面的文章中把每个概念详细地介绍给大家。

现在来说一下写此文的目的:最主要的还是与朋友及前辈们相互学习、讨论。如果您是有着多年开发经验的达人,那么您无需驻足,如果您能赏光看看我的文章,很希望您能指出我的错误观点以及纰漏之处,以免我误人子弟,并且促使我更加深入地研究和实践,便于我更快地进步。当然如果您是刚刚接触程序设计的朋友,对于标识符、变量、循环、数组都还不曾熟悉,那么我写的内容可能会让你感到迷茫,当然我会尽力阐述得易于理解。能从我写的东西中有些收获的应该是那些已经有一些C语言基础但尚未涉及指针或者涉及不深以及对指针有兴趣并想要深入研究的朋友(或同学)。对于前一种朋友希望你们看过之后能对指针有一个比较全面的认识从而为以后的深入学习铺好路,而后一种朋友(其中有不少我的同学),希望我写的文章能使你们对概念更加清晰,从而更准确、更安全地去使用指针。

另外说明一下,我本人也还有很多知识或者一些领域的技术不了解,不甚解,我很希望能和朋友们,同学们以及CSDN中的前辈达人们好好探讨,学习。

还有一点,由于对外国著作的翻译,有些术语在国内的各种教材书籍中称呼不统一,这就会使有些朋友在参考资料时产生疑惑。我会在后面的文章中做出解释,并给出标准的英文原词和一些国内常用的翻译法,从而使大家不至于因为一个不同的翻译方式浪费时间,最重要的是,大家要弄懂一个概念是什么,而不是叫什么。对于同学们来说,记住英文术语十分必要,因为我们最终都要离开学校走进职场,关注一下这些业界常用的英文术语(仅是一个个零散的单词)花费不了你许多时间,但这会为你在今后带来或多或少显式隐式的各种好处!

一.指针到底是什么

针是什么之前,我们需要先来看一下变量的概念。 指针(pointer)到底是什么,弄清楚这个问题很重要,这是我们所讨论的话题的源头,而在阐述指

我们知道,计算机的内存(primary storage)被划分为多个存储单元,这些存储单元可以以单个或者顺序相连组成一个更大单元的方式被使用。每一个单独的存储单元都是一个字节(byte),它通常由8个位(bit)组成,每一个位可以表示的值只有0或1。每一个存储单元都被一个及其分配的标识唯一地表示,而这个标识就是地址。

下图表示了存储单元单独被操作时的情形,矩形表示存储单元,矩形内的内容是存储在这个内存单元的具体的值。矩形上方的数就是每个内存单元的地址。因为每个单元为一个字节,而每个字符型常量(character constant)所占据的正是一个字节,如下所示:

再来看下面的图:

你可能喜欢

  • 语言分析
  • C语言经典程序
  • 彻底搞定C指针
  • C语言总结
  • C语言习题
  • C语言经典算法

全面详解C语言指针相关文档

最新文档

返回顶部