【发布时间】:2011-08-27 18:29:50
【问题描述】:
可能重复:
What is the difference between const int*, const int * const, and int const *?
我知道C++ 中指针变量的两种变体。
说我有
mystruct{
int num;
}
变体 1:
const mystruct* m1;表示m1中的成员变量不能修改,比如m1->num = 2会报错。
变体 2:
mystruct *const m2 = m1; 表示一旦将m2 设置为指向m1,再设置m2 =m3 就会产生错误。
但是,似乎还有第三种变体,我不确定以下的属性:
变体 3:
mystruct const * m3;
这是什么意思?
【问题讨论】:
-
请注意,在版本 1 中,指针对象的成员无法使用该 m1 指针进行更改,而不是一般情况下无法更改。换句话说,没有说所指向的对象是常量……这个词仍然是相对于指针,意思是“不能用于书写”。跨度>
-
投票结束,因为这是使用
mystruct而不是int的完全重复保存。 :)