1,掌握指针的概念,定义和运算,了解多级指针的概念
2.掌握用指针访问变量和一维数组的方法
3.掌提用指针访问二维数组的方法
4.掌握用指针处理字特串的方法。
5.掌握指针数组的使用方法。
6.热悉函数指针以及返回指针函数的用法。
1指针的基本概念
1.1内存、地址和指针
1.内存及其地址
尽管计算机技术的发展日新月异,现代的计算机仍然采用“基于程序存储和程序控制”的冯·诺依曼原理。“程序存储”就是在程序运行之前将程序和数据存入计算机内存。内存是由大量的存储单元(字节)组成成的。为了方便地寻找内存中存放的程序实体(变量、数组、函数等),必须将存储单元编号,这就是内存地址。由于不同的程序实体占据存储单元的数量不同,例如存储char型的类型的变量需要1个字节,short型的变量需要两个字节,long型和float型的变量需要4个字节,double型的变量需要8个字节。因此规定程序实体内存地址就是它们在相应的内存区域的第一个字节的编号。例如一个有5个元素的float类型的数组a,若a[0]的地址为2000,则a[1]的元素地址为2004…,a[4]的地址为2016,如图8-1
图8-1内存地址示意图
2.变量地地的获取
变量的存储单元是由系统在编译时或程序运行时分配的,因变量的地址不能人为确定,可以通过取地址运算符&表获取。例如:
int a;float b;char c;
scanf("%d%f%c",&a,&b,&c);
由&a、&b和&c分别得到变量a、b和c的内存地址。
注意:由于雪量和表达式没有用户可操作的内存地址,因此不能作用到省量或表达式上。
3.针与指针变量
指计地址,由于地址唯一定程序实体的存位置,就像路标一样,故形象地称其为指针。
指针变量是专门存放变量(或其他程序实体)地址的变量。指针变量也需要存储单元(存放地址值的整数),它本身也有地址,例如让变量p存放整型变量a的地址(如图82所示),这样通过变量p的值就可以找到变量a,变量p就是指针变量,它存放的地址就称为指针,因此,指针就是地址。
图8-2指针变量示意图
4.直接访问方式与间接访问方式
有了指针变量以后,对一般变量的访问既可以通过变量名进行,也可以通过指计变量进行。通过变量名或其地址(如a或&a)请问变量的方式叫直接访问方式:通过指针变量(如p)访问它指向的变量(如a)的方式叫间接访方式