指针的指针是什么(什么是指针)

本文目录
什么是指针
1、在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
2、在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。
3、另外,指针也指钟表中用来指示对应时间的部件。
扩展资料:
指针的机制比较简单,其功能可以被集中重新实现成更抽象化的引用(reference)数据形别。许多编程语言中都支持某种形式的指针,最著名的是C语言,但是有些编程语言对指针的运用采取比较严格的限制,如Java一般避免用指针,改为使用引用。
有两种含义,一是作为数据类型,二是作为实体。
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言中,如C语言。高层的语言如Java一般避免用指针,而是引用。
指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。
参考资料:百度百科-指针
指针的定义是什么
在信息工程中,指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。
1.基本概念
指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
在计算机语言中,由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
2.指针实质
指针其实是一个整数
计算机中的内存都是编址的,每个地址都有一个符号,就像家庭地址或者IP地址一样。在C语言的多数实现中,指针值等同于一个无符号整数(unsigned int,因不致歧义,下简称“整数”),它是一个以当前系统寻址范围为取值范围的整数。声明一个无符号整数并使它的值等于对象的地址值,实质上也能使之有指针的作用。
32位系统的寻址能力(地址空间)是4GB(0~232-1),二进制表示长度为32比特,也就是4B。不难验证,在32位系统的大多数实现里,int类型也正好是4B(32-bit)长度,可以取遍上述范围。同理,64位系统取值范围为0~264-1,int类型长度为8B。
例证就是程序1得到的答案和程序2的答案一致。
程序1:#include main(){ char *pT; char t=’h’; pT=&t; putchar(*pT);}
程序2:#include 《stdio.h》main(){ char *pT; char t=’h’; pT=(char *)1245048; putchar(*pT);}
3.指针和整数的区别
既然指针的实质是一个整数,为何不用unsigned int直接声明,或者统一用int *声明,而要用不同的类型后面加上一个“*”表示呢?char *声明过的类型,一次访问1个sizeof(char)长度,double *声明过的类型,一次访问1个sizeof(double)长度。也正因此,程序2第6行加上“(char *)”是因为毕竟unsigned int和char *不是一回事,需要强制转换,否则会有个警告。
在汇编里,没有数据类型这一概念,整数类型和指针就是一回事了。不论是整数还是指针,执行自增的时候,都是将原值加1。如果上文声明char *pT;,汇编语言中pT自增(INC)之后值为1245049,可是C语言中pT++之后pT值为1245049。如果32位系统中,上文声明int *pT;,汇编语言中pT自增之后值为1245049,可是C语言中pT++之后pT值为1245052。
为什么DOS下面的Turbo C,和Windows下的VC的int类型自增时的步进不一样长?因为DOS是16位的,Windows x86是32位的,int类型长度取决于编译器的位长。可以预见,在Windows x64中编译,上文声明int *pT;,在执行pT++之后pT值为1245056。
什么是指针什么是指针的指针他们之间有本质的区别么
指针本质上是地址,可以是变量、常量、函数的地址等。通过地址就能找到相应的变量等。这是C语言灵活性的重大体现。
指针的指针也是指针,但它指向的是一个指针变量(这个变量本身就是一个指针,这个指针可能指向别的变量、常量、函数等)。
指针的指针是指针的一种,是一个特别的指针;
指针和指针的指针是包含的关系;
指向指针的指针是什么意思
1
指针也是一个变量,在PC机windows
vc里占4个字节,dos的tc里是2个字节
2
指针变量里存的是一2字节或4字节无符号整数,数值是指针指向内容的内存编号
3
指向指针的指针就是
指针A里存有指针B的所在内存地址,指针B里面存有变量A所在的位置
你有三个变量int
**pa
,*pb,*C
分别存在0X4000
0X4002
0X4004的内存单元
c=0x1234
pb=&c
pa=&pb
那么内存中0x4000到0x4005
这6个字节内容就是
0X02
0X40
0x04,0x40,0x34,0x12
因为pc
是小端在前

更多文章:
turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)
2026年10月11日 10:00
金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)
2026年10月11日 09:10
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40




