文章

什么是指针

在计算机中,每个变量都会存放在内存中独立分配的一个空间,因此每个类型变量所占用的空间是不一样的,从字节数就可以看出,int型变量要占用4Byte(字节),long需要占用8Byte

在计算机中,每个字节都会有一个对应的地址,计算机通过地址查找到对应的地址,从而找到这个变量.变量的地址一般指它占用的字节中的第一个字节的地址,也就是说,int类型的变量地址就占用其第一个字节的地址

一个房间号”指向”一个房间,对应找到计算机上就是一个地址”指向”一个变量,可以通过地址来找到变量,在C语言中使用,“指针”表示内存地址(或称指针指向了内存地址),如果这个内存地址恰好就是某个变量的地址,往往我们叫做这个指针指向该变量,可以简单理解为,指针就是变量的地址(不是很严谨).

获取变量的地址的方式:使用取地址符&.只要在变量前加上&输出,表示变量的地址.例如int a 的整形变量, &a即为其地址,可以将地址号输出

1
2
3
4
5
6
7
8
#include <stdio.h>

int main()
{
    int a = 100;
    printf("%p, %d", &a, a);
    return 0;
}

输出

plain text 6356780, 100

每个电脑因为地址映射的环境不同,因此会有所不同,但是观察可以看出来,指针实际上是一个整数,事实上,指针是一个unsigned类型的整数

可以结合操作系统当中的存储部分的地址映射, 如分页地址映射进行理解指针,地址变量的关系,门牌号和房间内的内同是有所区别的.

本文由作者按照 CC BY 4.0 进行授权