简单的指针

简单的指针,接下来,让我们一起来看一下指针。指针是C语言的重要特征,但很多人都说它难以理解,甚至还有人因无法理解指针而对C语言的学习产生了很强的挫败感。不过,对已经阅读到现在的各位读者来说,指针应该很容易理解。理解指针的关键点就是要弄清楚数据类型这个概念。

指针也是一种变量,它所表示的不是数据的值,而是存储着数据的内存的地址。通过使用指针,就可以对任意指定地址的数据进行读写。虽然前面所提到的假想内存IC中仅有10位地址信号,但大家在Windows计算机上使用的程序通常都是32位(4字节)的内存地址。这种情况下,指针变量的长度也是32位。

请大家看一下代码清单4-2。这是定义了d、e、f这3个指针变量的C语言程序。和通常的变量定义有所不同,在定义指针时,我们通常会在变量名前加一个星号(*)。我们知道,d、e、f都是用来存储32位(4字节)的地址的变量。然而,为什么这里又用来指定char (1字节)、short(2字节)、long(4字节)这些数据类型呢?大家是不是也感到很奇怪?实际上,这些数据类型表示的是从指针存储的地址中一次能够读写的数据字节数。

代码清单4-2 各种数据类型指针的定义

char *d;                //char类型的指针d的定义
short *e;               //short类型的指针e的定义
long *f;                //long类型的指针f的定义

假设d、e、f的值都是100。在这种情况下,使用d时就能够从编号100的地址中读写1个字节的数据,使用e时就是2个字节(100地址和101地址)的数据,使用f时就是4个字节(100地址~103地址)的数据。怎么样?指针是不是很简单呢(图4-5)。

简单的指针
图4-5 指针的数据类型表示一次可以读写的长度

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!