• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 就c++中的const限定修飾符做一個入門的教程

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    const修飾符可以把對象轉變成常數對象,什么意思呢? 意思就就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用! 使用方法是: const int a=1;//這里定義了一個int類型的const常數變量a; 但就于指針來說const仍然是起作

    const修飾符可以把對象轉變成常數對象,什么意思呢?

    意思就就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用!

    使用方法是:

    const int a=1;//這里定義了一個int類型的const常數變量a;

    但就于指針來說const仍然是起作用的,以下有兩點要十分注意,因為下面的兩個問題很容易混淆!
    我們來看一個如下的例子:

    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    #include <iostream>
    using namespace std;

    void main(void)
    {
    const int a=10;
    int b=20;

    const int *pi;
    pi=&a;
    cout <<*pi << "|" << a <<endl;
    pi=&b;
    cout <<*pi << "|" <<b <<endl;
    cin.get();
    }

    上面的代碼中最重要的一句是 const int *pi
    這句從右向座讀作:pi是一個指向int類型的,被定義成const的對象的指針;
    這樣的一種聲明方式的作用是可以修改pi這個指針所指向的內存地址卻不能修改指向對象的值。

    如果你在代碼后加上*pi=10;這樣的賦值操作是不被允許編譯的!

     

    好,看了上面的兩個例子你對const有了一個基本的認識了,那么我們接下來看一個很容易混淆的用法!

    請看如下的代碼

    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    #include <iostream>
    using namespace std;

    void main(void)
    {
    int a=10;

    const int *const pi=&a;

    cout <<*pi << "|" <<a <<endl;
    cin.get();
    }

    上面的代碼中最重要的一句是 const int *const pi
    這句從右向座讀作:pi是一個指向int類型對象的const指針;

    這樣的一種聲明方式的作用是你既不可以修改pi所指向對象的內存地址也不能利用指針的解引用方式修改對象的值,也就是用*pi=10這樣的方式;

    所以你如果在最后加上*pi=20,想試圖通過這樣的方式修改對象a的值是不被允許編譯的!

    所以結合上面的兩點所說,把代碼修改成如下形式后就可以必然在程序的任意的地方修改對象a的值或者是指針pi的地址了,下面的這種寫法常被用語涵數的形式參數,這樣可以保證對象不會在涵數內被改變值!

    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    #include <iostream>
    using namespace std;

    void main(void)
    {
    const int a=10;//這句和上面不同,請注意!

    const int *const pi=&a;

    cout <<*pi << "|" <<a <<endl;
    cin.get();
    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>