`
jubincn
  • 浏览: 242706 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

数组和指针

 
阅读更多

记得研究生面试时,导师问过我数组和指针的不同,我没答上,十分紧张。后来专门查了一些资料,部分弄清了不同,但直到今天看了《C专家编程》,才对这两者的不同有了更深的了解。


指针有一个让人感到迷惑的性质,他存储的是一个地址,而自身又有一个地址,因此产生了“地址Y”和“地址Y的内容”之间的区别。编译器通过上下文来判断Y的具体含义,以下面这个赋值语句为例):

X = Y;

在这个上下文环境里,X是左值,含义是”X所代表的地址“。左值在编译时可知,表示存储结果的地方。Y是右值,含义是”Y所代表的地址的内容“。右值只有在运行时才能直到,如无特殊说明,右值表示”Y的内容“。


C语言中引入了”可修改的左值“这个属于。它表示左值允许出现在赋值语句的左边。这个奇怪的术语是为了与数组名区分,数组名也用于确定对象在内存中的位置,也是左值,但它不能作为赋值的对象。因此,数组名是个左值但不是可修改的左值。标准规定赋值符必须用可修改的左值作为它左边一侧的操作数。用通俗的话说,只能给可修改的东西赋值。

保存数据的地址

保存数据

间接访问数据,首先取得指针的内容,把它作为地址,然后从这个地址获取数据。

如果指针有一个下标[I],就把指针的内容加上I作为地址,从中提取数据。

直接访问数据,a[I]只是简单地以a+I为地址取得数据。

通常用于动态数据结构

通常用于存储固定数目且数据类型相同的元素。

相关函数为malloc(),free()

隐式分配和删除

通常指向匿名数据

自身即为数据


参考:《C专家编程》

分享到:
评论

相关推荐

    数组和指针练习题目(精选)

    数组和指针练习题目(精选) 在编程语言中,数组和指针是非常重要的概念,它们的应用非常广泛,理解基础是非常必要的。本节将通过多种练习题目来加深对数组和指针的理解。 指针基础 指针是一种特殊的变量,它可以...

    数组与指针区别(很全面)

    本文旨在澄清关于数组名是否等同于指针这一常见的误区,并通过具体的代码示例来深入探讨数组和指针之间的关系及其差异。 #### 二、数组与指针的基本概念 1. **数组**: - 数组是一系列相同类型的数据项的集合。 ...

    数组和指针的区别

    虽然数组和指针有相似之处,但在实际编程中需要注意以下几点: - **类型安全**:在使用指针时应确保指针的类型与所指向的数据类型一致,避免类型不匹配导致的问题。 - **内存泄漏**:使用动态内存分配时要注意及时...

    10 数组和指针.pdf

    10 数组和指针.pdf

    数组与指针的艺术.doc

    《数组与指针的艺术》是一篇深度探讨C/C++中数组和指针特性的文章,旨在帮助读者理解和掌握这两种核心概念。文章指出,数组和指针是C/C++语言的灵魂,它们提供了对底层操作的强大支持,是语言效率的保证。然而,由于...

    数组和指针学习资料

    在编程世界中,数组和指针是C/C++等低级语言的核心概念,它们的理解与熟练运用对于程序设计至关重要。本学习资料集包含了对数组和指针的深度解析,旨在帮助学习者彻底掌握这两个概念。 首先,我们来深入探讨数组。...

    C语言数组和指针

    **多维数组指针:** ```c int (*p)[3]; // p是指向含有3个整型元素数组的指针 int (*p)[3] = &a; // 将数组a的地址赋给p ``` **函数指针:** 函数指针是一种特殊的指针类型,它可以存储函数的地址。 ```c int add...

    数组和指针之间的区别与联系

    在C语言中,数组和指针是两个非常重要的概念,它们之间既有明显的区别,也有紧密的联系。数组是一种数据结构,而指针则是一种特殊的数据类型,用于存储内存地址。理解这两者的差异和关联对于深入学习C语言至关重要。...

    数组的指针和指向数组的指针变量

    数组的指针和指向数组的指针变量 数组的指针和指向数组的指针变量是编程语言中一个重要的概念。数组的指针是指向数组在内存中的起始地址,而指向数组的指针变量是指向数组元素的指针变量。 概念: * 数组的指针:...

    数组和指针使用及区别详解

    在编程中,数组和指针是两种非常基础且重要的概念,它们在处理数据时起着核心作用。数组是一组相同类型的元素的集合,通过索引来访问每个元素。指针则是一个变量,它存储的是内存地址,这个地址通常指向一个变量或...

    C++程序设计语言中数组和指针的探讨

    ### C++程序设计语言中数组和指针的探讨 #### 一、引言 在C++编程语言中,数组和指针是两个重要的基础概念,它们不仅被广泛应用于各种编程场景,也是理解更复杂数据结构(如链表、树、图等)的基础。正确理解和运用...

    C语言数组指针(指向数组的指针)_C语言中文网1

    总的来说,理解和熟练运用数组指针是掌握C语言的关键技能之一。它不仅能够帮助我们更有效地操作数组,还能在编写高效的代码时发挥重要作用。在深入学习C语言指针时,还会涉及到二级指针、指针数组、字符串指针、函数...

    C语言程序设计第4章数组和指针

    在C语言中,数组和指针是编程时非常重要的概念,尤其在处理大量数据或实现高效算法时。在第四章“数组和指针”中,我们主要探讨了以下几个知识点: 1. **数组的概念**: 数组是一组相同类型的变量,它们按照下标...

    浅议C语言中数组和指针的互操作

    浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作

    数组和指针测试数据oj.rar

    在编程领域,数组和指针是C/C++等低级语言中的核心概念,它们在程序设计中扮演着至关重要的角色。数组是一种数据结构,可以存储同类型的数据集合,而指针则是存储内存地址的变量,它能够间接访问和操作数组元素。本...

    C++一维数组和指针的关系总结

    在C++中,一维数组和指针之间存在着密切的关系。本文将从不同角度对这一关系进行详细解释,并通过实例代码帮助理解。 #### 数组名作为地址 首先,我们需要明确的是,在C++中,数组的名字实际上就是该数组第一个...

    数组和指针概念的联系与区分的经典文档.pdf

    在深入探讨之前,首先要明确指针和数组的基本定义。 指针,按照C/C++标准,是一种类型,它可以表示对内存中某个实体的引用。指针类型由"pointer to"和它所指向的类型组成,如"pointer to int"(int*)。指针可以...

Global site tag (gtag.js) - Google Analytics