[size=16px;]<span style="color: #000000;">a.能否将一个非常量对象的地址赋给一个常量指针?[/size]</span>
[size=16px;]<span style="color: #000000;">b.能否将一个常量对象的地址赋给一个非常量指针?若确要如此,该如何做?[/size]</span>
[size=16px; color: #000000;]可以将非常量对象地址赋值给常量指针,但是不能将常量对象地址给非常量指针,因为其无法保证不修改常量对象。[/size]
[size=16px; color: #000000;]若却要如此,则只能强制转换,能编译通过,但却可能存在隐患。因此编译器的工作就是将一切可能的隐患扼杀在摇篮中。[/size]
[size=16px; color: #000000;]</span>
[size=16px; color: #000000;]void main()[/size]
[size=16px; color: #000000;]{[/size]
[size=16px;]<span style="color: #000000;">const int i=5;[/size][/size]
[size=16px;]<span style="color: #000000;">int *j=[/size]const_cast<int *><span style="color: #000000;">(&i);</span></span>
[size=16px; color: #000000;]}[/size]
[size=16px;]<span style="color: #000000;">b.能否将一个常量对象的地址赋给一个非常量指针?若确要如此,该如何做?[/size]</span>
[size=16px; color: #000000;]可以将非常量对象地址赋值给常量指针,但是不能将常量对象地址给非常量指针,因为其无法保证不修改常量对象。[/size]
[size=16px; color: #000000;]若却要如此,则只能强制转换,能编译通过,但却可能存在隐患。因此编译器的工作就是将一切可能的隐患扼杀在摇篮中。[/size]
[size=16px; color: #000000;]</span>
[size=16px; color: #000000;]void main()[/size]
[size=16px; color: #000000;]{[/size]
[size=16px;]<span style="color: #000000;">const int i=5;[/size][/size]
[size=16px;]<span style="color: #000000;">int *j=[/size]const_cast<int *><span style="color: #000000;">(&i);</span></span>
[size=16px; color: #000000;]}[/size]