“指针”一直以来都是初学者理解和掌握C语言的一大障碍,“指针”作为C语言的核心内容,如果不掌握指针的相关知识,就不能说是学会了C语言。
本文将通过文字描述+代码解析+图例展示的方式,详细解释C语言指针的含义,以期拨开指针之迷雾、得见C语言之精髓。
首先,“指针”是C语言定义的一种特殊的数据类型,众所周知,任何数据类型都要占用一定的内存空间,比如'char'类型占用一个字节内存、'short'占用2个字节内存等。指针作为一种数据类型,也占用一定的内存空间:32位机器上占用4字节,64位机器上占用8字节(不讨论CPU、操作系统、编译器位数不同的情况~~)。
那么,指针的“特殊”又是指什么呢?
我们知道,当我们定义一个'int'类型的变量时,可以给这个变量赋值不同的数值,当使用这个变量时,直接使用变量名即可。
但是,对于指针的操作,则必须通过两个特殊的运算符:‘&’— 取地址运算符和‘*’— 间接寻址运算符。
这也就是指针特殊的地方,指针本身占用的那块内存里面,存放的是另外一块内存空间的地址,我们不能直接使用指针的内容。当给指针赋值的时候,需要使用‘&’运算符获取另外一个变量的内存地址——这也正说明了指针占用的内存空间的大