易百教程

指针简介

在C语言中,可以存储地址的变量称为指针。存储在指针中的地址通常是另一个变量的地址。
例如有一个指针point_number,它包含另一个名称为number变量的地址。
每种类型都有自己的指针类型。指针只能用于指向该类型的变量。
所以“指向int的指针”类型的指针只能指向int类型的变量。“指向float指针”类型的指针只能指向float类型的变量。
通常,对于任何给定的类型名称type,给定类型的指针都是type *

类型名称void表示不存在任何类型,因此void *类型的指针可以包含任何类型的数据项的地址。

类型void *用作独立类型数据的参数类型或返回值类型。任何类型的指针都可以作为void *类型的值传递,然后在使用它时转换为适当的类型。

使用指针示例

#include <stdio.h>
int main(){
   int* pc;
   int c;
   c=22;
   printf("Address of c:%u\n",&c);
   printf("Value of c:%d\n\n",c);
   pc=&c;
   printf("Address of pointer pc:%u\n",pc);
   printf("Content of pointer pc:%d\n\n",*pc);
   c=11;
   printf("Address of pointer pc:%u\n",pc);
   printf("Content of pointer pc:%d\n\n",*pc);
   *pc=2;
   printf("Address of c:%u\n",&c);
   printf("Value of c:%d\n\n",c);
   return 0;
}

执行上面示例代码,得到以下结果:

Address of c: 2686784
Value of c: 22

Address of pointer pc: 2686784
Content of pointer pc: 22

Address of pointer pc: 2686784
Content of pointer pc: 11

Address of c: 2686784
Value of c: 2