当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

第5章 指针与数组

发表于: 2010-10-24   作者:bsr1983   来源:转载   浏览次数:
c C++ C#
摘要: 指针是一种保存变量地址的变量。 5.1 指针与地址 指针是能够存放一个地址的一组存储单元(通常是两个或4个字节)。 一元运算符&可用于取一个对象的地址,因此,下列语句: p=&c; 将把c的地址赋值给变量p,我们称p为“指向”c的指针。地址运算符&只能应用于内存中的对象,即变量与数组元素。它不能作用于 表达式、常量或register类型的变量。 一元运算符*是间
指针是一种保存变量地址的变量。
5.1 指针与地址
指针是能够存放一个地址的一组存储单元(通常是两个或4个字节)。
一元运算符&可用于取一个对象的地址,因此,下列语句:
p=&c;
将把c的地址赋值给变量p,我们称p为“指向”c的指针。地址运算符&只能应用于内存中的对象,即变量与数组元素。它不能作用于 表达式、常量或register类型的变量。
一元运算符*是间接寻址或间接引用运算符。当它作用于指针时,将访问指针所指向的对象。
指针只能指向某种特定类型的对象,也就是说,每个指针都必须指向某种特定的数据类型。(一个例外的情况是指向void类型的指针可以存放指向任何类型的指针,但它不能间接引用其自身)。
一元运算符*和&的优先级比算术运算符的优先级高,因此,赋值语句
y=*ip+1;
将把*ip所指向的对象的值取出并加1,然后再将结果赋值给y。
(*ip)++中的括号是必须的,否则,该表达式将对ip进行加1运算,而不是对ip指向的对象进行加1运算,这是因为,类似于*和++这样的一元运算符遵循从右至左的结合顺序。
5.2 指针与函数参数
由于C语言是以传值的方式将参数值传递给被调用函数。因此,被调用函数不能直接修改主调函数中变量的值。
指针参数使得被调用函数能够访问和修改主调函数中对象的值。
5.3 指针与数组
数组名和指针之间有一个不同之处,指针是一个变量。
当把数组名传递给一个函数时,实际上传递的是该数组的第一个元素的地址。在被调用的函数中,该参数是一个局部变量,因此,数组名参数必须是一个指针,也就是一个存储地址值的变量。
5.4 地址算术运算
如果p是一个指向数组中某个元素的指针,那么p++将对p进行自增运算并指向下一个元素,而p+=i将对p进行加i的增量运算,使其指向指针p当前所指向的元素之后的第i个元素。这类运算是指针或地址算术运算中最简单的形式。

第5章 指针与数组

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
先看一下基本的形式,我们从这里起步! --------------指针---------------- int a=10; int *p=&a; --
一、指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别。其实很好理解: 指
任何能由数组下标完成的操作也可由指针来完成,一个不带下标的数组名就是一个指向此数组的指针,在C
int main() { int radio[5] = {1,2,3,4,5}; int element; int i=0; int * addre; addre=radio; for(
一、数组 数组是由类型名、标识符和维数组成的复合数据类型,类型名规定了存放在数组中的元素类型,
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维
在C/C++的编程中,对指针的使用和了解,再熟悉都不为过。 C/C++毫无疑问的十分强大,但离开了指针和
【C++】指针数组和数组指针 首先的首先,稍微抱怨一下阿里今天的严重失误。说好的晚六点笔试,说好
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维
指针数组 :就是指针的数组,数组的元素是指针; 数组指针:就是指向数组的指针。 简单举例说明: int
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号