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

  • 内容
  • 评论
  • 相关

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

常量指针

前面已经介绍了如何将一个项目的地址传递到一个指针形参中,并且该指针可以用来修改作为实参传递的项目。有时需要将 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 常量指针

本文标题:指针常量和常量指针(无师自通)

本文地址:https://www.hosteonscn.com/3831.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注