如何理解C语言指针-初步认识(小白向)

本文介绍了计算机内存的基本概念,强调了内存单元的地址和程序运行的关系。通过实例展示了如何使用C++中的指针,包括取地址符`&`和解引用操作符`*`。讨论了指针变量的大小与平台位数的关系,并提供了计算指针大小的示例代码。此外,还介绍了如何通过指针进行内存访问,帮助读者更好地理解和运用指针这一核心编程概念。
摘要由CSDN通过智能技术生成

想要理解指针 ,就要先了解内存

内存是什么?

``内存是电脑上重要的存储器,程序都是在内存中运行的
为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元大小是一个字节,为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

我们的电脑是有内存和硬盘的,比方说
在这里插入图片描述

那么这么大的内存如何划分给程序使用呢?

我们这里把内存划分成为一个小格子
在这里插入图片描述
我们在这里给每个小格子一个编号,这里的编号就是内存的地址,也就是说编号就是地址

那么如何使用呢?

这里就牵扯到俩个操作符 &取地址符和*解引用操作符

先创建一个变量
在这里插入图片描述
我们这里按下F10
在这里插入图片描述
(如果按下F10没有出现监视和内存窗口的话可以在最上面 调试->窗口中打开)
地址是一个0x开头的序列(16进制)
我们这里可以看到变量a占用了4个字节,每一个字节都有一个地址,&a拿到的是第一个字节的地址
从这里可以看到,我们在变量中不管占多少字节 &a 拿到的都是第一个地址

创建一个变量来储存地址

在这里插入图片描述
这里的b就是一个指针变量,下面让我们来详细了解一下

*说明 b是指针变量

int* 是一个类型 一个整型指针类型 int说明b指向的对象是int类型
`

*b = 20;//*号是解引用操作*b就是通过b中存放的地址指向a的空间  这里等同于a=20

指针变量的大小?

int main()
{
	printf("%d\n",sizeof(char*));
	printf("%d\n",sizeof(int*));
	printf("%d\n",sizeof(short*));
	printf("%d\n",sizeof(double*));
}

在这里插入图片描述
(sizeof计算的结果是无符号的整数,可以使用对应的格式&zu)
指针变量的大小取决于地址的大小
32位平台下地址是32bit位(4个字节)
64位平台下地址是64bit位(8个字节)

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值