2.3.2节练习
练习 2.18
示例:
int a =1,b=2 //定义整型变量
int *p = 0; //定义整型指针,其指向的地址为空
p = &a; //指向的对象更改为a,其值也变为a的地址
练习2.19
练习 2.20
int i = 42; //定义整型变量
int *p1 = &i; //定义整型变量p1, 其指向对象为 i
*p1 = *p1 * *p1 // 等价于 i = i * i;
练习2.21
(a)错误,指针的类型和指向的对象的数据类型应相同。
(b)错误,没有对变量 i 进行取地址操作,正确的做法应该是 int *p = &i;
(c)正确。
练习2.22
if (p) //判断指针是否为空
if(*p) //判断指针指向的的对象是否为true,或非0
练习2.23
不能。“访问无效指针的后果无法预计, 因此程序员必须清楚任意给定的指针是否有效”
练习2.24
因为lp和i 的数据类型不同。void * 指针可以指向任意类型被变量