一、知识点1. 掌握指针、地址、指针类型、空指针(NULL)等概念;2. 掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3. 掌握指针与数组、函数、字符串等的联系;4. 掌握动态空间操作(new,delete);5. 掌握引用参数的使用。二、例题分析与解答例题 1:若有以下定义,则说法错误的是( )。 int a=100,*p=&a ;A.声明变量 p,其中*表示 p 是一个指针变量B.变量 p 经初始化,获得变量 a 的地址C.变量 p 只可以指向一个整形变量D.变量 p 的值为 100答案:D分析:有指针变量定义可知 A、C 说法是正确的,故不能选.在语句中&p=a,表示指针变量取得变量 a 地址,B说法也正确,也不能选择。D 中不能说变量 p 的值为 100,应该*p 的值为 100,所以选择 D。 例题 2:若有以下定义,则赋值正确的是( )。int a ,b , *p;float c, *q;A.p=&c B.q=p C.p=NULL D.q=new int答案:C分析:指针变量使用规定,不同类型的指针变量不能赋值,也不能取得普通变量地址,故 A、B 不正确,不能选择.因为 q 是 float 类型指针变量,不能申请 int 类型地址,D 不正确,也不能选择.因为任何类型的指针变量都能取得 NULL 指针,所以 C 正确。 例题 3:假如 x 是整型变量,则合法的形式是( ).A.&(x+5)B.*x C.&*x D.*&x答案:D分析:因为 C++语言表达式没有地址,A 不正确.C++语言普通变量不能用*运算,因此 B 和 C 也不正确。&x 表示变量 x 的地址,*&x 是 x 地址的值,所以 D 正确。例题 4:若要建立如下关系,错误的语句组是( ).span style=’mso—ignore:vglayout; ;z—index:1;left:0px;margin-left:144px;margin—top:1px; width:256px;height:38px' A. B. C. D. int *p=&x, x; int x, p=&x; int *p, x=10; int *p, x; *p=10; *p=10; *p=&x; p=&x ; x=10;答案:A分析:在变量类型说明语句中 *表示变量是指针变量,在其他语句中,*称为指针运算,用于访问指针所指向的对象的值,&称为取地址运算,用来得到一个对象的地址。故 B、C、D 都是正确的,不能选择.A 中指针变量 p 取不到 x 地址,因为 x 还没有定义,所以选择 A。 例题 5:若有语句 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对 a 数组元素的正确引用(其中 0≤i〈10).A.p[i]...