Java教程

初识指针

本文主要是介绍初识指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

指针:就是地址,是由解引用操作符来找到所想要的对象,

指针变量:是用来存放别人的地址的

内存是怎么编号的?

一般计算机是32位或者64位,例:32位的计算机是有32根地址线而地址是物理线是可以通电的,正电就是1,负电就是0,而这些线全部通电有些电是正的有些是负的,而这些电就会产生电信号,

电信号就会转换成数字信息:1和0组成的二进制序列

而32根二进制序列信号会产生可能性

00000000000000000000000000000000

0111111111111111111111111111111111111111

1000000000000000000000000000000

11111111111111111111111111111111111111111把这样的二进制序列就是内存的编号,二进制序列有2的32次方个,这些二进制序列都可以作为内存的编号,当这些二进制序列当成编号,这些编号就称为内存单元的地址

一个这样的内存单位给多大的空间呢?

假设一个内存单元是1bit

2的32次方是100000000000000000000000000000000换成bit就是

 c语言中最小的char类型而char是1byte(字节)-8bit(比特位)-8个地址,如果一个地址是1个bit的话太浪费太细了,而最终的一个内存单位是1个字节的话就比较合适,1个字节给1个地址

 a在内存中要分配空间-4个字节

%p是专门用来打印地址的

&a:取a的地址,不会哪全部地址,只会拿4个字节的第一个字节的地址

pa是用来存放地址的,在c语言中pa叫指针变量

*是说明pa是指针变量的

int是说明pa执行的类型对象是int类型

 这里的a的值是10,*pa是通过pa里面的存放的a的地址找到a,而*pa可以间接改变a的值

*:解引用操作(*是单目操作符) 

指针变量的大小

 

为什么全部类型打印出来的大小大都是一样的呢?

指针的类型大小都是一样的,因为指针式用来存放地址的,指针需要多大空间,取决于地址存储需要多大空间

32位的平台打印出来的是32bit也就是4个byte

64位的电平台打印出来的数63bit也就是8个byte

这篇关于初识指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!