常量指针与指针常量 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    #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>

最新文章