#include
using namespace std;
int main()
{
int a=5,b=10,d=20;
int * const c=&a;
*c=a;
cout<
输出:(在Ubuntu下还不会截屏没截图啦)
自己试一下吧 ,可以看到输出了同一个地址,还有5,10;
切记最重要的一点 cosnt 修饰的是它前面的东西 也就是 int * ,而int* 是一个指针 所以理解为 指针被修饰为常量 (所以程序输出地址不变,但是它内存中的值是可以变的)
在定义的时候要先赋值,不然就出错啦,
c=&b; 是不可以的,因为c是个常量嘛!!!
#include<iostream></p><p> using namespace std;</p><p> int main()</p><p> {</p><p> int a=5,b=10,d=20;</p><p> int const * c=&a;</p><p> c=&d;</p><p> cout<<c<<"-------"<<*c<<endl; c="&b;" cout<<c<<"-------"<<*c<<endl;="" return="" 0;="" }="" <="" pre=""></p><p> <p>const 修饰它前面的东西 这个程序也就容易理解了 <br></p><p> </p></p><p> <p>输出结果为: 不同地址,不同值</p></p><p> <p>因为它不是个常量的指针 所以c的地址可以随意更改; <br></p><p> </p></p><p> <p>但是 不能 *c=50; 因为不能更改c内存中的值;</p></p><p> <p>虽然现在我知道 常量指针和指针常量 文字意思,但是过几天又忘记啦,反正知道怎么用才是最重要的</p></p><p> <p>切记最重要的一点 cosnt 修饰的是它前面的东西 这是我在C++ templates 看到的</p></p><p> <p>还有 cosnt int a =10;</p></p><p> <p> int const a =10;</p></p><p> <p>是一样的 C++ templates 书中也建议 用下面这种;<br></p><p> </p></p><p> <p>还有 int const * cosnt c =&a ;被俩次修饰 ,不能做任何修改;<br></p><p> </p> </c<<"-------"<<*c<<endl;></iostream>