当前位置:首页 » 存储配置 » 指针的存储器

指针的存储器

发布时间: 2022-07-16 21:55:55

‘壹’ 请通俗一点的讲讲指针是怎么存储

指针是存储内存地址的变量,只是一种变量而已
就像int的变量存储整形
就像float的变量存储浮点形
就像char的变量存储字符形
就像double的变量存储高精度浮点形

char *,int *,float* 定义的指针都是一样的,用来存放内存地址.一般来说可以存储2^32次方那么大的内存地址.
之所以有那么多类型的指针是方便写代码,同时支持指针的自我加减操作.
最终的操作都是转化成void*的指针来操作

假设你要读取内存地址为0x5201314的那块内存 void *p = 0x5201314;
cout<<(int)*p;//读取4个字节
cout<<(char)*p;//读取1个字节
。。。。。。

‘贰’ 指针存储器和变址存储器的区别

指针用来指向一个地址。使用这种寻址方式的优点在于可以在程序运行过程中实现变址。 指针用于存储器间接寻址

‘叁’ 单片机中,通用指针一般在存储器中占用几个字节

指针DPTR是16位的特殊功能寄存器占两个字节。

‘肆’ c语言当定义一个指针是如何存储的

在 C 语言中,将内存单元的编号或地址称为指针。可通过一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址,或称为某内存单元的指针。它与其他一般变量所不同的是,一般的变量包含的是实际的、真实的数据;而指针只是一个指示器,它告诉程序在内存的哪块区域可以找到数据。

‘伍’ 程序存储器,堆栈和外部数据存储器各使用什么指针

1、程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。
2、堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。 3、数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。

‘陆’ 通常用作堆栈指针的寄存器叫什么名字

在调用子程序时需要保存调用函数的CPU寄存器PC指针,PC指针是被CALL指令自动压入SP所指向的片内存储器,CPU寄存器要由用户用PUSH指令自行保存,因此SP的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP所指向的存储器,SP自动增加1或2,当中断结束RETI,调用返回RET,POP时将SP数据弹出,SP自动减1或28051最大为128字节的片内存储器,0X20以上理论都可以做堆栈用96字节,8052为256字节224字节可用但这样便没有其它空间可用于数据存储现在的单片机的程序一般都能用C51来,不用关心堆栈大小与SP寄存器

‘柒’ 指针的存储类型和数据类型的意义是什么

1.定义指针指定的数据类型是指指向数据的类型,并不是指针的类型,指针的数据类型是内存地址类型。
2.之所以定义指针时指明它指向数据的类型,是因为有些数据类型不能进行某些操作(运算),比如两个char相乘(或相除)没有任何意义。假如说定义指针时不需要指明它指向数据的类型,那么有指针p1和p2,那么(*p1)*(*p2)在不知道p1和p2指向的数据类型时就不能保证它对数据类型运算的限制了;
3,如果你只是想用指针保存一下数据的内存地址而不去对它进行运算你可以定义void类型的指针,它能指向任何数据类型,但是他不能进行任何运算。
另外你看下C++ Primer这本书,他对指针说明的很详细

‘捌’ 指针的概念

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。

‘玖’ c51中一般指针变量占用多少字节存储

是三个字节,第一个字节表示存储器类型,第二,三个字节是指向数据地址的高字节和低字节。

如果将首位作为符号位

即1为负数

0为整数

一字节存的最小数为

11111111(-128)

最大数为

01111111(127)

如果没有符号位则

最小数为00000000(十进制0)

最大数为11111111(十进制255)

(9)指针的存储器扩展阅读:

多字节数据存放顺序与CPU有关,微处理器中的存放顺序有正序(Big-Endian)和逆序(Little-Endian)(也称大端存储和小端存储)之分。常见的Intel系列使用的编码方式属于Little-Endian类;某些RISC架构的CPU,如IBM的Power-PC等属于Big-Endian类。

Big-Endian:高位字节存入低地址,低位字节存入高地址,依次排列。

Little-Endian:低位字节存入低地址,高位字节存入高地址,反序排列。

‘拾’ C语言中指针变量是存在哪里的

1、指针变量和普通的变量一样,编译期储存在代码当中,运行期间储存在内存里。c语言的变量值是通过该变量的内存地址寻址得到的,而对于一个已经编译好的程序,变量的地址都是确定的值,不可以更改。这是因为程序在编译时编译器已经通过语法分析把指针变量的地址值计算出来了,所以指针变量实际上不用保存在内存堆栈或数据段中,而是包含在汇编代码里面。
2、指针变量里面就是整型的一个十六进制数,用来表示的就是指向某个变量的地址;
指针是C语言中广泛使用的一种数据类型;
利用指针变量可以表示各种数据结构;
能很方便地使用数组和字符串;
并能象汇编语言一样处理内存地址,从而编出精练而高效的程序;
指针极大地丰富了编程语言的功能。

热点内容
华为电脑服务器系统进不去提示 发布:2024-10-08 00:13:42 浏览:490
登录密码如何获取 发布:2024-10-07 23:58:40 浏览:424
王者荣耀人机脚本 发布:2024-10-07 23:58:33 浏览:807
地标建筑脚本 发布:2024-10-07 23:48:51 浏览:242
sqlorderby 发布:2024-10-07 23:42:13 浏览:958
qq秒源码 发布:2024-10-07 23:41:37 浏览:471
51单片机编译器 发布:2024-10-07 23:28:04 浏览:798
安卓手机陌陌封设备了怎么搞 发布:2024-10-07 23:17:00 浏览:180
sql管理系统代码 发布:2024-10-07 23:00:51 浏览:524
安卓什么浏览器可以打开 发布:2024-10-07 23:00:51 浏览:121