一、知识点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;