C语言指针
首先我们要知道内存是如何存放变量的:通过变量名对变量进行访问和存储是为了方便程序员而设计的,其实在内存中完全没有存储变量名的必要。因为编译器知道具体每一个变量名对应的存放地址,所以当你读取某个变量的时候,编译器就会找到变量名所在的地址,并根据变量的类型读取相应范围的数据。通俗的来说就是变量名就是个地址,存这个地址存放的是一个不同类型的值。
访问变量地址
我们先通过变量名来访问一个整型变量的地址,代码如下:
#include<stdio.h>
int main(void)
{
int a=77;//当然这里不被赋值也可以。
printf("%d",&a);//这里在a前面加了个&取地址符,得到的是a的地址。
printf("%p",&a);//这里%p是通过十六进制输出地址,上面一行代码则是十进制。
return 0;
}
上面这段代码十进制的地址是:6356764。十六进制地址是:0060FF1C。有些怀疑的朋友可以通过计算器转换试试哈。每次地址都不会一样,所以最好先通过查找一个int变量的地址,在用那个地址-4得到我们要存放值的地址,这样能最少与当前地址之前的存放的东西冲突,就会报错。
好,接下来我们就用十进制的地址的方法给大家演示。上面我们知道了一个十进制地址:6356764。因为int类型占4字节,所以我们就6356764-4=6

最低0.47元/天 解锁文章
2397





