指针初阶介绍

本文介绍了计算机内存的基本单位——字节及其地址的概念,详细解释了指针变量的定义与使用,包括指针变量的声明、解引用操作以及不同类型的指针对内存的操作范围。

指针介绍

内存被划分为了若干个内存单元,一个内存单元的大小是一个字节(8bit)

每个内存单元都有编号,这个编号被称为内存地址/指针

指针就是内存地址,口语中说的指针通常指的是指针变量。

指针变量

内存地址或指针可以存放在一个变量中,这个变量被称为指针变量

指针变量是用来存放内存地址的变量

指针变量写法:数据类型* 指针变量名 = &变量名

*的意思是表示这个变量是指针

数据类型是取地址的变量的类型

指针变量的大小是由所存储的地址大小来决定的(其实就是内存地址的位数)

解引用的介绍

解引用就是通过指针变量所存储的内存地址找到原来的数据,这时对指针变量进行修改会修改原来的数据
换一种说法:通过指针变量中存储的地址,就能找到指针指向的空间

*指针变量名:代表解引用操作

直接将字符串赋给指针变量

直接将字符串赋给指针变量,实际的含义是,把字符串地址(字符串数组首元素地址)赋给了指针变量

例如:char* p = "abcdef"; *p的是a的地址

指针类型的作用

指针的类型决定了指针向前或者向后走一步有多大(距离)。

指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。
整数指针解引用访问4个字节(4个内存单元)
字符指针解引用访问一个字节(1个内存单元)

比如: char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。

虚拟地址空间与指针变量大小关系

32位机器,支持32位虚拟地址空间,产生地址就是32bit位空间存储,因此指针变量大小是32位 4字节

64位机器,支持64位虚拟地址空间,产生地址就是64bit位空间存储,因此指针变量大小是64位 4字节


在32位的机器上,有32根地址线,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小就应该是4个字节。
因此一共有2的32次方个01组合确定不同的内存单元,一共可容纳2的32次方字节容量-->4gb

在64位机器上,有64个地址线,那一个指针变量的大小是8个字节,才能存放一个地址。
因此一共有2的64次方个01组合确定不同的内存单元,一共可容纳2的64次方字节容量

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值