指针详解
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针详解相关的知识,希望对你有一定的参考价值。
1 指针详解
C语言提供了指针的定义,通过指针,可以很灵活地操作内存块中的数据;例如,数据结构中的链表、树等结构,都需要使用指针来完成。所以,学习和掌握指针对提高C语言编程非常重要。
在学习C语言编程的过程中,指针是一个非常重要的知识点。网络上很多言论,都说指针的很难的东西,其实,这些言论都是被夸大的。C语言的指针,其实很简单。不用把它想象得那么复杂,跟着作者的脚步和思路,一步一个脚印地学习下去,你就会发现,C语言的指针是很简单的东西。
最终,你会发现,其实指针就是一个地址,你可以通过一个地址,找到自己想要的数据。
2 变量的地址
我们学习了变量,知道“变量名”就如同一个房子的房号,变量就如同一个房子,有自己的存储空间。任何一个存在的房子,都有一个具体地址。例如xx村yy街道zz号房,这就是一个房子的具体地址。如果一个村里有6栋房子,那么,我们就可以给村里的房子进行编号,如下:
xx村yy街道801号;
xx村yy街道802号;
xx村yy街道803号;
xx村yy街道804号;
xx村yy街道805号;
xx村yy街道806号;
可以看到,每一个房子都有了自己的详细地址。
此时,我们认识到了房子和房子的地址;那么,就可以引申到:变量和变量的地址。
C语言中定义的每一个变量,都会在内存中创建该变量;例如我们定义的每一个房子,都是在地球表面上创建起来的房子。每个房子有自己唯一的地址,同理,在内存中创建的变量,也有自己唯一的变量地址。
假设我们自己制作了一块内存条,它只有6个字节的容量。那么,可以给内存条的6个字节空间安排具体的地址,定义如下:
此时,内存中的每一个字节空间都有了自己的地址,就如同一个房子有了自己的地址一样。例如我们想访问内存中第3个字节中的数据,通过803地址编号,就可以找到第3个字节在哪里,就可以访问里面的数据。
现在,我们学习了变量和变量的地址。那么,就应该来感受一下C语言中怎么样获取变量的地址。在C语言中,提供了取地址运算符“&”,可以用来获取一个变量的地址。取地址运算符“&”的使用格式如下:
&变量名;
就是在变量名的前面,加上取地址运算符“&”,就可以获取到变量的地址。程序测试代码如下:
程序运行结果如下:
可以看到,编译的时候,提示了warning警告;就是不可以把一个pointer初始化给(赋
值给)int类型变量。但是,只是警告而已,没有问题。下面我们讲解pointer指针时再详细说明。
从运行结果可以看出,通过取地址运算符&,可以取出变量的地址。变量的地址就是一个数值(地址编号,例如803这样的数值),它是变量在内存中存放的地址。例如我们自己制作的内存条一样,第3个字节的地址就是803,也就是一个数值。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于指针详解的主要内容,如果未能解决你的问题,请参考以下文章