嚴以律己,寬以待人. 三思而后行. GMail/GTalk: yanglinbo#google.com; MSN/Email: tx7do#yahoo.com.cn; QQ: 3 0 3 3 9 6 9 2 0 .
const修飾符可以把對象轉變成常數對象,什么意思呢?
意思就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用!
使用方法是:
const?int?a=1;//這里定義了一個int類型的const常數變量a;
但就于指針來說const仍然是起作用的,以下有兩點要十分注意,因為下面的兩個問題很容易混淆! 我們來看一個如下的例子:
?
上面的代碼中最重要的一句是 const int *pi 這句從右向座讀作:pi是一個指向int類型的,被定義成const的對象的指針; 這樣的一種聲明方式的作用是可以修改pi這個指針所指向的內存地址卻不能修改指向對象的值; 如果你在代碼后加上*pi=10;這樣的賦值操作是不被允許編譯的!
好,看了上面的兩個例子你對const有了一個基本的認識了,那么我們接下來看一個很容易混淆的用法! 請看如下的代碼:
上面的代碼中最重要的一句是 const int *const pi 這句從右向座讀作:pi是一個指向int類型對象的const指針; 這樣的一種聲明方式的作用是你既不可以修改pi所指向對象的內存地址也不能利用指針的解引用方式修改對象的值,也就是用*pi=10這樣的方式; 所以你如果在最后加上*pi=20,想試圖通過這樣的方式修改對象a的值是不被允許編譯的! 結合上面的兩點所說,把代碼修改成如下形式后就可以必然在程序的任意的地方修改對象a的值或者是指針pi的地址了,下面的這種寫法常被用語涵數的形式參數,這樣可以保證對象不會在涵數內被改變值!
posted on 2006-08-02 12:08 楊粼波 閱讀(361) 評論(0) 編輯 收藏 引用 所屬分類: C++
Powered by: C++博客 Copyright © 楊粼波