指针
指针的作用是什么啊?
第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然小伙伴们也可以通过数据的复制达到相同的效果,但是这样往往效率不太好。因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。第二,指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。第三,有些操作必须使用指针。如操作申请的堆内存。还有:C语言中的一切函数调用中,值传递都是“按值传递”的。如果要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。扩展资料指针的表现形式是地址,核心是指向关系指针运算符“*”的作用是按照指向关系访问所指向的对象.如果存在A指向B的指向关系,则A是B的地址,“*A”表示通过这个指向关系间接访问B。如果B的值也是一个指针,它指向C,则B是C的地址,“*B”表示间接访问C如果C是整型、实型或者结构体等类型的变量或者是存放这些类型的数据的数组元素,则B(即C的地址)是普通的指针,称为一级指针,用于存放一级指针的变量称为一级指针变量。参考资料来源:百度百科-指针
什么是指针?
1、在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。2、在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。3、另外,指针也指钟表中用来指示对应时间的部件。扩展资料:指针的机制比较简单,其功能可以被集中重新实现成更抽象化的引用(reference)数据形别。许多编程语言中都支持某种形式的指针,最著名的是C语言,但是有些编程语言对指针的运用采取比较严格的限制,如Java一般避免用指针,改为使用引用。有两种含义,一是作为数据类型,二是作为实体。指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言中,如C语言。高层的语言如Java一般避免用指针,而是引用。指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。参考资料:百度百科-指针
指针的定义
指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。扩展资料指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。在计算机语言中,由于通过地址能找到所需的`变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针其实是一个整数。计算机中的内存都是编址的,每个地址都有一个符号,就像家庭地址或者IP地址一样。在C语言的多数实现中,指针值等同于一个无符号整数(unsigned int,因不致歧义,下简称“整数”),它是一个以当前系统寻址范围为取值范围的整数。声明一个无符号整数并使它的值等于对象的地址值,实质上也能使之有指针的作用。
指针的用途
(1)可以提高程序的编译效率和执行速度,使程序更加简洁。
(2)通过指针被调用函数可以向调用函数处返回除正常的返回值之外的其他数据,从而实现两者间的双向通信。
(3)利用指针可以实现 动态内存分配 。
(4)指针还用于表示和实现各种复杂的数据结构,从而为编写出更加高质量的程序奠定基础。
(5)利用 指针可以直接操纵内存地址 ,从而可以完成和汇编语言类似的工作。
(6)更容易实现函数的编写和调用
C语言中的指针
通过指针来分配一个地址
*(地址),是去读地址里面存的东西。假设m=&q,我们可以用***m去访问i的值。如果*后面接的不是地址,这个量也会被认为是地址,执行*运算后,就会不知道指向哪里,就有乱码之类的情况出现。
简单言之,*m取值10101010,&q取地址0X12345678
例如在32位机中:
32/8=4B
BUS 数据总线+地址总线+控制总线
一个具有20位地址和32位字长的存储器,问该存储器能储存字节信息4m,寻址空间为1m
int *p,i ; p=&i ;
这一句告诉计算机有一个指针p , 它指向 i 所占的4个字节的第一位,由于提前告诉计算机,我这个是int型指针,计算机就知道p指向的变量到底有多长,所以当执行p+1时,这个时候计算机就知道要跳过4个字节。
作用 :首先主要在数据结构之中当改变指针的时候就需要通过改变指针的指针的值来改变!
在数据结构中用处很广.最普遍的比如说链表,通过调用函数改变了链表中的元素,那么整个链表就发生了变化,这种情况下就会用到二级指针
q里面存的是p指针所在的地址,因为int *p是会给指针p分配一个地址,这个地址里面,存着地址A。
*q就是查看&p这个地址里面存的到底是什么内容。这里的话就会发现,它存的是地址A。
那么**q就等同于*p,而*p又表示 i 的内容。
假设 a、p1、p2、p3 的地址分别是 0X00A0、0X1000、0X2000、0X3000,它们之间的关系可以用下图来描述:
方框里面是变量本身的值,方框下面是变量的地址。
***p3等价于*(*(*p3))。一级指针*p3 得到的是 p2 的值,也即 p1 的地址;二级指针*(*p3) 得到的是 p1 的值,也即 a 的地址;经过三次“取值”操作后,三级指针*(*(*p3)) 得到的才是 a 的值。
C语言中的指针是什么意思?
表示成员选择(指针),选择结构体的成员变量。1、结构:运算符 -> 是指向结构体成员运算符,结合方向为自左向右。2、用法:对象指针->成员名。举例说明如下:扩展资料:C语言指针的必要性。指针解决了一些编程中基本的问题:1、指针的使用使得不同区域的代码可以轻易的共享内存数据。当然也可以通过数据的复制达到相同的效果,但是这样往往效率不太好,因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。2、指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。3、有些操作必须使用指针。如操作申请的堆内存。还有:C语言中的一切函数调用中,值传递都是“按值传递”的,如果要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。参考资料:百度百科--指针
c语言指针是什么
1、c语言指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。
2、因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
3、再打个比方:有个人让你去麦当劳帮我买个雪糕,那么麦当劳是这个变量a,但是那个人现在把麦当劳所在的地址写在纸上给你,那么这张纸就可以看做一个指向麦当劳的指针。
上一篇:小清新图片
下一篇:没有了