新编C语言程序设计教程(本科)第10章.pdf

新编C语言程序设计教程(本科)第10章

第10章指针类型 第10章指针类型 10.1 指针与指针变量 10.2 指针与数组 10.3 指针与字符串 10.4 指针与结构体 10.5 指针与链表 10.6 指针与函数 10.7 指针作基类型 10.8 程序设计举例 第10章指针类型 10.1 指针与指针变量 10.1.1 指针变量的定义 1. 定义方法  形式:  类型标识符 *变量标识符;  定义存放指定类型数据地址的指针变量。 第10章指针类型 例如:  (1) int *p1,*p2,*p3;  定义指向整型数据的指针变量p1 、p2 、p3 。  (2) float *q1,*q2,*q3;  定义指向实型数据的指针变量q1、q2、q3 。  (3) char * r1,*r2,*r3;  定义指向字符型数据的指针变量r1 、r2 、r3 。 第10章指针类型 (4) struct date  {int year;  int month ;  int day ;  } *t1,*t2,*t3;  定义指向struct date类型数据的指针变量t1 、t2 、t3 。 第10章指针类型 说明:  (1) 指针变量可与普通变量混合定义,指针变量的定 义与普通变量的定义用变量名前加“*”区分。例如:  int i,*p;/*定义整型变量i,指针变量p*/  (2) 空指针“NULL ”是一特殊的指针数据,表示空地 址,相当于整型数据中的0,字符数据中的空格。  第10章指针类型 (3) 指针变量只能用于存放指定类型数据的地址。 如以上定义的一些指针变量,p1 、p2 、p3 只能存放整 型数据的地址,q1 、 q2 、 q3只能存放实型数据的地 址,r1 、r2 、r3 只能存放字符型数据的地址,t1 、t2 、 t3只能存放struct date型数据的地址。 第10章指针类型 (4) 指针变量不能直接赋以具体地址值,不能从键 盘输入值。指针变量通过间接赋以相关数据的地址, 或调用存储空间分配函数得到值。例如:  int i,j ,k ;  int p1=i , p2=j , p3=k ;/ p1 得到i 的地 * * * * 址,p2得到j 的地址,p3得到k 的地址*/ 第10章指针类型 (5) 指针类型隐含在指针变量的定义中。例如,在上 面定义指针变量p1 、p2 、p3 时,实际上在背后隐含定义 了一指向整型数据的指针类型,从形式上可以将int 看成 * 是指向整型数据的指针类型。  与数组定义一样,通过typedef 可以将指针类型与指 针变量分离。例如,上面定义的指针变量p1 、p2 、p3 , 可以改用如下形式:  typedef int *INTPOINT ;  INTPOINT p1 ,p2 ,p3 ; 第10章指针类型 (6) 指针变量本身占有2字节的存储空间。  (7)“void * ”指针类型定义的指针变量,不指向哪一 种特定类型的数据,在实际使用时通过强制类型转换 成指向特定类型的数据。 第10章指针类型 2. 指针变量所指向的变量特定类型的数据  例如,对指针变量p1 、p2

文档评论(0)

1亿VIP精品文档

相关文档