• 指针常量和常量指针(无师自通)

    常量指针不能用于改变它指向的值;而指针常量在初始化之后就不能改变。

    常量指针

    前面已经介绍了如何将一个项目的地址传递到一个指针形参中,并且该指针可以用来修改作为实参传递的项目。有时需要将 const 项目的地址传递给指针。在这种情况下,必须把指针定义为指向 const 项的指针。例如,来看以下数组定义:

    const int SIZE = 6;
    const double payRates[SIZE] = { 18.55, 17.45, 12.85, 14.97, 10.35, 18.89 };

    在以上代码中,payRates 是一个 const double 的数组,这意味着数组中的每个元素都是 一个 const double,编译器不会允许程序员编写改变数组内容的代码。如果想要将 payRates 数组传递到一个指针形参中,那么这个形参必须声明为一个指向 const double 的指针。以下函数就显示了这样一个示例:

    void displayPayRates(const double *rates, int size)
    {
        // Set numeric output formatting
        cout << setprecision(2) << fixed << showpoint;
        // Display all the pay rates
        for (int count = 0; count < size; count++)
        {
            cout << "Pay rate for employee " << (count + 1)<< "is $" << *(rates + count) << endl;
        }
    }

    在函数头中,请注意 rates 形参被定义为一个指向 const double 的指针。应该指出的是,const 这个单词适用于 rates 指向的东西,而不是 rates 本身,如图 1 所示。



    图 1 常量指针

更多...

加载中...