-1

我用 C++ 编写了以下 3 个函数。请解释一下所有返回类型有何不同?以及返回值将如何存储在内存中?我知道 const 关键字适用于紧靠左侧的任何内容,但我需要更多解释。

const int* sample1();
int* const sample2();
int const* sample3();
4

2 回答 2

2
const int* sample1();
int const* sample3();

这些功能是相同的。它们返回指向常量内存的指针(此内存不能通过此指针更改)。但是我们可以改变指针本身。例如增加它。

int* const sample2();

此函数返回指向非常量内存的常量指针。我们不能改变指针本身,但我们可以改变它指向的内存。

于 2013-03-05T12:22:54.677 回答
0

const不必适用于直接右侧的任何内容。例如

class Foo
{ 
  void Bar() const;
  int var;
}

这将禁止Foo中的函数Bar更改对象中的任何成员变量。除了这个us2012的评论总结了一切。

我可能完全喜欢,但这似乎是学校作业或其他什么?

于 2013-03-05T12:18:10.153 回答