内存中的指针

  • Post author:
  • Post category:其他

指针是C语言的重要特性,指针是一种变量,它表示的不是数据的值,而是存储着数据的内存地址。使用指针可对任意指定地址的数据进行读写。
Windows计算机上使用的程序通常为32位(4字节)的内存地址,此时指针变量的长度也是32位

和普通变量定义不同的是,在定义指针时,会在变量名前添加一个星号(*)。

// C语言中定义不同类型的指针变量
char *d; // char类型的指针d的定义
short *e; // short 类型的指针e的定义
long *f; // long类型的指针f的定义

既然d、e、f用来存储32位(4字节)地址的变量,为什么又指定char(1字节)、short(2字节)、long(4字节)这些数据类型呢?

实际上,这些数据类型表示的是从指针存储的地址中一次能够读写的数据字节数。

4933701-5e9641449f901d5a.png
指针的数据类型表示一次可读写的长度

假设d、e、f的值都是100,在这种情况下,使用d时就能够从编号100的地址中读写一个字节的数据。使用e时就是2个字节(100地址和101地址)的数据。使用f时就是4个字节(100~103地址)的数据。


版权声明:本文为JunChow520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。