小豆丁:老张!老张!
老张:叫谁老张呢,我不老!我才18岁!
小豆丁:额。。。小张?
老张:你给我圆润地离开!
小豆丁:嘿嘿,张老师!叫你张老师,这总可以了吧!
老张:这还差不多,说吧,找我啥事?
小豆丁:我在网上看到一句话,说指针就是地址,这个说法对吗?
老张:你觉得对吗?
小豆丁:我感觉不太对,但是还有点说不清楚不对在哪里。。。
老张:其实这个说法是不准确的,指针和地址本质上是完全不同的东西。
小豆丁:具体说说呗!
老张:首先我们说下地址,地址是什么呢?地址是内存中字节的编号。我们知道内存是由大量字节构成的,每个字节都有一个属于自己的编号,这些编号从0开始,依次递增,这些编号就是我们所说的地址。当我们在程序中声明一个变量的时候,会占用相应个数的字节,第一个字节的编号,就是这个变量的地址。
小豆丁:那指针呢?
老张:指针的本质实际上是一种特殊的数据类型,我们可以声明指针类型的变量。
小豆丁:那指针类型的变量存什么啊?地址吗?
老张:是的啊,指针类型的变量,存储的是地址。举个例子,int num = 5;有个整型的变量num,存储整型数据5。int* p_num = #有个指针类型变量p_num,存储的是num变量的地址,所以我们可以说指针p_num指向变量num。
小豆丁:哦,我明白了!
老张:那指针就是地址这句话对吗?
小豆丁:不对,指针和地址的本质不同,可以说指针能够代表地址,但是不能说指针就是地址!
老张:聪明,孺子可教也!
小豆丁:谢谢老张!
老张:叫谁老张呢!我不老!
老张:关注老张18岁,每天聊点IT小知识!
领取专属 10元无门槛券
私享最新 技术干货