它们是数组、字符串和其他数据结构和算法的基础。
指针是包含另一个变量地址的变量。换句话说,它“指向”分配给变量的位置,并可以间接访问变量。
指针使用*符号声明并采用以下形式:
指针类型 *标识符
指针类型是指针将指向的数据类型。实际的指针数据类型是十六进制数,但是在声明指针时,必须指明它将指向的数据类型。
星号* 声明一个指针,应该出现在指针变量使用的标识符旁边。
以下程序演示变量、指针和地址:
int j = 63; int *p = NULL; p = &j; printf("j的地址是%x\n", &j); printf("p 的地址是 %x\n", p); printf("j的值是 %d\n", j); printf("p指向值 %d\n", *p);
程序输出类似于:
j的地址是ff3652cc p包含地址ff3652cc j的值是63 p指向值63
关于这个程序有几点需要注意:
指针应初始化为空,直到它们被分配到有效位置。
指针可以使用&号和*符号指定变量的地址。
若要查看指针指向的是什么,请再次使用*键,如*p所示。在这种情况下,*键称为间接或解引用运算符。这个过程称为解引用。