指针是C/C++编程中的重要概念之一,也是最容易产生困惑并导致程序出错的问题之一。利用指针编程可以表示各种数据结构,通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯;指针能够灵活的操作内存,合理的操作内存能够使程序更高效。
1.指针的概念
本质上讲指针也是一种变量,普通的变量包含的是实际的数据,而指针变量包含的是内存中的一块地址,这块地址指向某个变量或者函数,指针就是地址。指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。
2.指针的内容
指针的内容包含4部分:指针的类型,指针所指向的类型,指针的值,指针本身所占有的内存区。在初学指针时,指针的类型和指针所指向的类型是极容易搞混淆的,弄清楚这些概念,有助于我们正确的使用指针。
3.指针的类型和指针所指向的类型
从语法上讲,指针的类型是指把指针声明语句中的指针名字去掉所剩下的部分。
指针指向的是一块内存区域,指针所指向的类型取决于这块内存在编译时是什么类型,比如一个int*类型指针所指向的类型是int。
下面我来就一些例子来对这两个概念进行说明。