【C语言】19-指针-1

1. 指针是什么

要想知道指针是什么,首先需要知道数据在计算机中是如何存储的,又是如何读取的
如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元(在计算机中一般是以字节编址,换句话说一个地址对应着 1 字节的存储空间)。编译系统根据程序中定义的变量类型,分配一定长度的空间。例如,Visual C++ 2010 为 int 型变量分配 4 个字节,为单精度浮点型变量分配 4 个字节,为字符型变量分配 1 个字节。内存区的每一个字节有一个编号,这就是地址,它相当于旅馆中的房间号。在地址所标志的内存单元中存放的数据则相当于旅馆房间中居住的旅客

由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。打个比方,一个房间的门口挂了一个房间号 2008,这个 2008 就是房间的地址,或者说,2008 指向该房间。因此,将地址形象化地称为“指针”,意思是通过它能找到以它为地址的内存单元

对计算机存储单元的访问比旅馆要复杂一些,在 C 语言中,对于不同类型的数据在内存中分配的存储单元大小(字节数)和存储方式是不同的
例如整数是以补码的形式存储,浮点数是以指数形式存储。如果只是指定了地址 1010,希望从该单元中调出数据这是不可能的,因为即使可以找到所指定的存储单元,但是无法确定是从 1 个字节读取信息(字符型)还是从 2 个字节读取信息(短整型)亦或是从 4 个字节读取信息(整型),同时也没有指明按照何种存储方式存取数据,例如整型和单精度浮点型都是 4 字节,但存储方式不

猜你喜欢

转载自blog.csdn.net/FuckerGod/article/details/132779670