C++函数声明常数变量

问题描述:

可能重复:
What is the difference between const int*, const int * const, and int const *?C++函数声明常数变量

我想了解如何const作品函数参数。 void function(int const *&i);void function(const int *&i);之间的区别是什么?如果您举了一个实施例和i的用法,我将不胜感激。

它们是相同的,从右侧刚读它到左:

第一个例子:i是一个常数整数的指针的引用。

第二个例子:我是一个整数常量指针的引用。

const的放置只改变指针两侧的东西。例如:

const int* i

指:i是一个指针指向一个恒定整数

int* const i

指:i是一个常量指针为整数。

+0

我可以给这个函数赋i一个变量吗,如果是的话,怎么样? – ibrahim 2011-05-02 19:39:17

+0

@ibrahim:当然可以。你可以照常做。像这样'i = p;'其中'p'是可隐式转换为'const int *'的某个值。 – 2011-05-02 20:22:00

这些声明是等价的。有关更多信息,请参阅this page

为const正确性最好的地方就是 - C++ FAQ Lite

它们都是一样的。

它意味着对指向const int的指针的引用。