指针
一.什么是指针
指针是C语言中最重要也是最容易被误解的特性之一。计算机将内存分割为字节,每个字节都可以储存八位的信息,每个字节都有唯一的地址,用来与其他字节相区别。程序中的每个变量占有一个或多个字节内存,把第一个字节的地址称为是变量的地址。而指针就是这个地址,指针变量就是存储地址的变量。
二.指针变量的声明
对变量指针的声明类似于对普通变量的声明,唯一的不同就是必须在指针变量的名字前放置星号。
上述声明说明p是指向int类型对象的指针变量。指针变量可以和其他变量一起出现在声明中:
其中i和j都是普通整型变量,a和b是整型数组,而p和q是指向整型对象的指针。
C语言中,每个指针变量只能指向一种特定类型的对象:
事实上,指针变量甚至可以指向另一个指针,即指向指针的指针。
三.指针的初始化与赋值
为了使用指针,C语言中有了&(取地址)运算符,可以用&运算符找到变量的地址。如x是一个变量,那么&x就是x在内存中的地址。为了获得对指针所指向的对象的访问,可以使用*(间接寻址)运算符。
如果p是指针,那么*p表示p当前指向的对象。(注意:不要把间接寻址运算符用于未初始化的指针变量。)
声明指针变量是为指针留出空间,但是并没有把它指向对象,所以在使用前初始化指针是非常重要的。
初始化方法如下:
这三种都可以将i的地址取出来赋给p来初始化指针变量。