内容发布更新时间 : 2025/4/5 2:55:47星期一 下面是文章的全部内容请认真阅读。
解:
const int * p1 声明了一个指向整型常量的指针p1,因此不能通过指针p1来改变它所指向的整型值;int * const p2声明了一个指针型常量,用于存放整型变量的地址,这个指针一旦初始化后,就不能被重新赋值了。
6-16 定义一个整型变量a,一个整型指针p,一个引用r,通过p把a的值改为10,通过r把a的值改为5 解: void main() { int a; int *p = &a; int &r = a; *p = 10; r = 5; }
6-17 下列程序有何问题,请仔细体会使用指针时应避免出现这个的问题。
#include
cout << \return 0; } 解:
指针p没有初始化,也就是没有指向某个确定的内存单元,它指向内存中的一个随机地址,给这个随机地址赋值是非常危险的。
6-18 下列程序有何问题,请改正;仔细体会使用指针时应避免出现的这个问题。 #include
int a = Fn1();
cout << \return 0; }
int Fn1() {
int * p = new int (5); return *p; } 解:
此程序中给*p分配的内存没有被释放掉。 改正:
#include
int *a = Fn1();
cout << \delete a; return 0; }
int* Fn1() {
int * p = new int (5); return p; }
6-19 声明一个参数为整型,返回值为长整型的函数指针;声明类A的一个成员函数指针,其参数为整型,返回值长整型。 解:
long (* p_fn1)(int); long ( A::*p_fn2)(int);
6-20 实现一个名为SimpleCircle的简单圆类,其数据成员int *itsRadius为一个指向其半径值的指针,设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。 解: 源程序:
#include
class SimpleCircle {
25
public:
SimpleCircle(); SimpleCircle(int);
SimpleCircle(const SimpleCircle &); ~SimpleCircle() {}
void SetRadius(int); int GetRadius()const;
private: int *itsRadius; };
SimpleCircle::SimpleCircle() {
itsRadius = new int(5); }
SimpleCircle::SimpleCircle(int radius) {
itsRadius = new int(radius); }
SimpleCircle::SimpleCircle(const SimpleCircle & rhs) {
int val = rhs.GetRadius(); itsR