问题描述
- 分析下面函数,以下说法正确的是
-
分析下面函数,以下说法正确的是swap(int *p1,int *p2) { int *p; *p=*p1; *p1=*p2; *p2=*p; }
A. 交换*p1和*p2的值 B. 正确,但无法改变*p1和*p2的值 C. 交换*p1和*p2的地址 D. 可能造成系统故障,因为使用了空指针
解决方案
选D,正确的写法
swap(int *&p1,int *&p2) { int *p; p=p1; p1=p2; p2=p; }
解决方案二:
int *p; 只有定义,没有初始化(分配空间),所以会引起异常。
可以考虑使用 : int p = 0; 然后使用 p 时不要使用 * 号即可。
解决方案三:
D p没有初始化,要给p先初始化,int * p=0;
解决方案四:
D p没有初始化,指向的空间是不确定的。
时间: 2024-10-14 22:12:44