🎈个人主页👉:tbRNA-CSDN博客
💯个人简介:在校23级大学生一枚💋.
😍希望我的文章对大家有着不一样的帮助,欢迎大家关注我,感谢大家的多多支持!🎉欢迎 👍点赞✍评论⭐收藏
1、内存和地址
计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的
数据也会放回内存中,计算机中
每个内存单元的⼤⼩取1个字节。
❗⼀个⽐特位可以存储⼀个2进制的位1或者0
👇计算机中常见的单位:
每个内存单元也都有⼀个编号,
有了这个内存单元的编
号,CPU就可以快速找到⼀个内存空间。
在计算机中我们把内存单元的编号也称为地址。而
在C语⾔中给地址起了新的名字叫:指针。
由此可见:内存单元的编号 == 地址 == 指针
下面👇是关于内存和地址的图示:
2、指针变量和地址
2.1 取地址操作符(&)
理解了内存和地址的关系,我们再回到C语⾔,在C语⾔中创建变量其实就是向内存申请空间。
那么,我们该如何得到变量的地址呢?
这⾥就得学习⼀个操作符(&) - 取地址操作符。
示例代码👇
#include <stdio.h>
int main()
{
int a = 10;
//&a ->取出a的地址
printf("%p\n", &a);
return 0;
}
图👇:
通过运行结果可以看出,&a取出的是a所占4个字节中地址较⼩的字节的地址。
虽然整型变量占⽤4个字节,我们只要知道了第⼀个字节地址,顺藤摸⽠访问到4个字节的数据也是可⾏的。
2.2 解引⽤操作符(*)
那我们通过取地址操作符(&)拿到的地址是⼀个数值,⽐如:0x006FFD70,这个数值有时候也是需要存储起来,⽅便后期再使⽤的,那我们把这样的地址值存放在哪⾥呢?
答案是:指针变量中。
比如:
#include <stdio.h>
int main()
{
int a = 10;
int * pa = &a;//取出a的地址并存储到指针变量pa中
return 0;
}
指针变量也是⼀种变量,这种变量就是⽤来存放地址的,存放在指针变量中的值都会理解为地址。