第十章 指针 (10学时) 学习目的与要求: 1 、理解地址和指针的概念; 2 、重点掌握指针变量的定义和引用; 3 、重点掌握指向数组的指针和通过指向数组的指针操纵数组; 4 、重点掌握指向字符串的指针和通过指向字符串的指针操纵字符串 ; 5 、理解指向指针的指针、指针数组等概念。 重点: 1 、指针变量的定义和引用; 2 、指向数组的指针和通过指向数组的指针操纵数组; 3 、指向字符串的指针和通过指向字符串的指针操纵字符串 第1 讲 知识归纳: 1、地址和指针的概念: (1 ) 地址:内存区的每一个字节的编号 ; (2 ) 指针:一个变量的地址称为该变量的指针,即地址就是指针,指针就是地址; 2、指向变量的指针变量: (1 ) 指针变量:是指专门用来存放变量地址的一类变量 ; (2 ) 注意区分指针和指针变量的概念; 指针是地址;指针变量是存放地址的变量; 平时所说的定义一个指针,实际上是指定义一个指针变量; 3、指针变量的定义和引用: (1 ) 定义指针变量格式: 基类型 * 指针变量名 ; (2 ) 如何确定指针变量的类型? 要定义的指针准备指向什么类型变量,该指针就是什么类型; (3 ) 如何让一个指针指向一个变量? 将变量的地址赋值给指针变量; & -----取地址运算符; 如 : int a =5 ; int * pa ; int pa = &a ; (4 ) 指针变量的引用: *-----取内容运算符, 该运算符与指针变量结合,表示指针所指向的变量的内容; 如:printf (“ % d ,%d\n “ , * pa , a ) ; 下面是错误的: int * pa ; printf (“ % d \n “ , * pa ) ; //一个指针在没有指向一个确切的存储空间时,是不能使用 * p a 4、指针总结: int a = 5 ; int * pa =&a ; 在定义指针,并指向某个变量后,我们可以得出如下结论: (1) *pa 等价于 a (2) pa 等价于 &a (3) & * pa 等价于 &a 、 pa (4) * &a 等价于 a 基础训练(A) 一、选择题 1、已知:int *p,a;则语句“p=&a;”中的运算符“&”的含义是( )。 A)位与运算 B)逻辑与运算 C)取指针内容 D)取变量地址 2、已知:double d;希望指针变量 pd 指向 d,下面对指针变量 pd 的正确定义是 ( )。 A)double pd; B)double &pd C)double *pd D)double *(pd) 3、若 x 为整型变量,p 是指向整型数据的指针变量,则正确的赋值表达式是( ...