一、概述
什么是指针?
指针是一种特殊的变量,指针的值是某个变量的内存地址,因此指针是用来存放某个变量地址的变量,它存放了哪个变量的地址,就说它指向了哪个变量。
指针的常见类型有指向int型,float型,double型,char型,还有指向数组、结构体、函数的指针。
二、基础知识
指针就是地址。
直接访问——对变量值的存取总是按地址进行的。
间接访问——先将变量i的地址存放到另一变量p1中,要访问i时,先取出p1的内容(变量i的地址),再去访问该地址所对应的内存单元中的内容(变量i的值)。
int i,j,k;
i=3;
j=6;
k=i+j;
int *p1,*p2; //定义两个指针变量p1,p2,用来存放地址
//也可以写成 int* p1; int* p2;
p1=&i; //指向该地址对应的变量的值
p2=&j;
以下的两个语句等价
i=3;
&p1=3;
指针变量的引用:
①用地址运算符&
int i;
int *p;
p=&i;
②用指针运算符* (实现间接访问)
*p1=100;
k=*p1;
注意:p1=100 是错误的!不可对指针变量赋值。
例1:
注意:
int *p1;
*p1=100;
是错误的,p1指向的地址不确定!
指针变量的运算符:
运算:
三、指针与函数
指针与函数的关系体现在三个方面: