论述C语言中指针的概念和作用,并举例说明
4个回答
展开全部
1、指针概念:变量的地址(计算机内存字节的编号)叫做指针,存放变量地址的变量叫指针变
量,
简言之,指针是用来存放地址的。
2、作用:指向这个变量或数组的首地址,是变量的间接引用方式。其值如果改变,变量的值或数组元素的值也会跟着改变。程序对变量的操作实际上是对变量所在的存储空间读取和写入数据。方便对变量的操作。
举例说明:
int
a=3;/*定义一个整型变量a,并赋初值3*/
int
*p;/*定义一个指针变量P*/
p=&a;/*让p指向a的首地址,也就是a的地址*/
程序为a分配一个2个字节的存储单元,假如2个字节的地址分别为(ABCD1和ABCD2,唯一),那么p里面放的值就是ABCD1,不是3。这时可通过p直接引用a,实际上*p=3。以后不管a存放在内存中的哪个地方,只用通过调用p就可以引用a。这时如果令*p=4,则最后的a值也为4。对于数组,指针是指向数组的首地址。
量,
简言之,指针是用来存放地址的。
2、作用:指向这个变量或数组的首地址,是变量的间接引用方式。其值如果改变,变量的值或数组元素的值也会跟着改变。程序对变量的操作实际上是对变量所在的存储空间读取和写入数据。方便对变量的操作。
举例说明:
int
a=3;/*定义一个整型变量a,并赋初值3*/
int
*p;/*定义一个指针变量P*/
p=&a;/*让p指向a的首地址,也就是a的地址*/
程序为a分配一个2个字节的存储单元,假如2个字节的地址分别为(ABCD1和ABCD2,唯一),那么p里面放的值就是ABCD1,不是3。这时可通过p直接引用a,实际上*p=3。以后不管a存放在内存中的哪个地方,只用通过调用p就可以引用a。这时如果令*p=4,则最后的a值也为4。对于数组,指针是指向数组的首地址。
展开全部
自己去看这本书吧,上面有关于指针的上百个例子和详细的程序注释。
http://book.douban.com/subject/4209736/
http://book.douban.com/subject/4209736/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言_071_指针的定义和使用_上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针是c语言中广泛使用的一种数据类型。
运用指针编程是c语言最主要的风格之一。利用指针变量可以表示各种数据结构;
能很方便地使用数组和字符串;
并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了c语言的功能。
学习指针是学习c语言中最重要的一环,
能否正确理解和使用指针是我们是否掌握c语言的一个标志。同时,
指针也是c语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
指针的基本概念
在计算机中,所有的数据都是存放在存储器中的。
一般把存储器中的一个字节称为一个内存单元,
不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,
在第二章中已有详细的介绍。为了正确地访问这些内存单元,
必须为每个内存单元编上号。
根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。
既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。
内存单元的指针和内存单元的内容是两个不同的概念。
可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时,
银行工作人员将根据我们的帐号去找我们的存款单,
找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针,
存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,
其中存放的数据才是该单元的内容。在c语言中,
允许用一个变量来存放指针,这种变量称为指针变量。因此,
一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。图中,设有字符变量c,其内容为“k”(ascii码为十进制数
75),c占用了011a号单元(地址用十六进数表示)。设有指针变量p,内容为011a,
这种情况我们称为p指向变量c,或说p是指向变量c的指针。
严格地说,一个指针是一个地址,
是一个常量。而一个指针变量却可以被赋予不同的指针值,是变。
但在常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址,
是常量,“指针变量”是指取值为地址的变量。
定义指针的目的是为了通过指针去访问内存单元。
既然指针变量的值是一个地址,
那么这个地址不仅可以是变量的地址,
也可以是其它数据结构的地址。在一个指针变量中存放一
个数组或一个函数的首地址有何意义呢?
因为数组或函数都是连续存放的。通过访问指针变量取得了数组或函数的首地址,
也就找到了该数组或函数。这样一来,
凡是出现数组,函数的地方都可以用一个指针变量来表示,
只要该指针变量中赋予数组或函数的首地址即可。这样做,
将会使程序的概念十分清楚,程序本身也精练,高效。在c语言中,
一种数据类型或数据结构往往都占有一组连续的内存单元。
用“地址”这个概念并不能很好地描述一种数据类型或数据结构,
而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,
它是“指向”一个数据结构的,因而概念更为清楚,表示更为明确。
这也是引入“指针”概念的一个重要原因。
运用指针编程是c语言最主要的风格之一。利用指针变量可以表示各种数据结构;
能很方便地使用数组和字符串;
并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了c语言的功能。
学习指针是学习c语言中最重要的一环,
能否正确理解和使用指针是我们是否掌握c语言的一个标志。同时,
指针也是c语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
指针的基本概念
在计算机中,所有的数据都是存放在存储器中的。
一般把存储器中的一个字节称为一个内存单元,
不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,
在第二章中已有详细的介绍。为了正确地访问这些内存单元,
必须为每个内存单元编上号。
根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。
既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。
内存单元的指针和内存单元的内容是两个不同的概念。
可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时,
银行工作人员将根据我们的帐号去找我们的存款单,
找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针,
存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,
其中存放的数据才是该单元的内容。在c语言中,
允许用一个变量来存放指针,这种变量称为指针变量。因此,
一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。图中,设有字符变量c,其内容为“k”(ascii码为十进制数
75),c占用了011a号单元(地址用十六进数表示)。设有指针变量p,内容为011a,
这种情况我们称为p指向变量c,或说p是指向变量c的指针。
严格地说,一个指针是一个地址,
是一个常量。而一个指针变量却可以被赋予不同的指针值,是变。
但在常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址,
是常量,“指针变量”是指取值为地址的变量。
定义指针的目的是为了通过指针去访问内存单元。
既然指针变量的值是一个地址,
那么这个地址不仅可以是变量的地址,
也可以是其它数据结构的地址。在一个指针变量中存放一
个数组或一个函数的首地址有何意义呢?
因为数组或函数都是连续存放的。通过访问指针变量取得了数组或函数的首地址,
也就找到了该数组或函数。这样一来,
凡是出现数组,函数的地方都可以用一个指针变量来表示,
只要该指针变量中赋予数组或函数的首地址即可。这样做,
将会使程序的概念十分清楚,程序本身也精练,高效。在c语言中,
一种数据类型或数据结构往往都占有一组连续的内存单元。
用“地址”这个概念并不能很好地描述一种数据类型或数据结构,
而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,
它是“指向”一个数据结构的,因而概念更为清楚,表示更为明确。
这也是引入“指针”概念的一个重要原因。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询