就c++中的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();

}

就c++中的const限定修飾符做一個入門的教程
更多內容請看C/C++技術學堂專題,或

入門教程:C++中的const限定修飾符
  const修飾符可以把對象轉變成常數對象,什麽意思呢?   意思就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用!  使用方法是: ...查看完整版>>入門教程:C++中的const限定修飾符
 
C++中的const限定修飾符
const修飾符可以把對象轉變成常數對象,什麽意思呢? 意思就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用!  使用方法是:const int a=1;//這裏定義了一個int類型的cons...查看完整版>>C++中的const限定修飾符
 
C++中的const限定修飾符
const修飾符可以把對象轉變成常數對象,什麽意思呢? 意思就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數一樣使用!  使用方法是:const int a=1;//這裏定義了一個int類型的...查看完整版>>C++中的const限定修飾符
 
C++學習筆記一 —— 3.5 const限定修飾符
<1>.const類型限定修飾符把一個對象轉換成一個常量(constant).例如const int bufsize= 512.<2>.因爲常量在定義後就不能被修改,所以它必須被初始化。未初始化的常量定義將導致編譯錯誤。const double pi...查看完整版>>C++學習筆記一 —— 3.5 const限定修飾符
 
C++中的const--C++系列文章(1)
(以下文中有來自對互聯網內容的引用,在此作者對原作者表示感謝!--bigLeo)看到const 關鍵字,很多程序員想到的可能是const 常量,這可有點象踩到陷井上還不知道自己危險了。讀讀以下文字會使你對c++中的const有...查看完整版>>C++中的const--C++系列文章(1)
 
如何跨文件使用C++中的const類型指針
通過二個文件:main.cpp , fun.cpp 來測試const類型指針的跨文件使用// main.cpp#include <string.h>char * const str=new char;void fun();void main(){ strcpy(str,"hello"); fun();} // fun.cpp#in...查看完整版>>如何跨文件使用C++中的const類型指針
 
深入解析C++中的三個修飾符
  static 是c++中很常用的修飾符,它被用來控制變量的存儲方式和可見性,下面我將從 static 修飾符的産生原因、作用談起,全面分析static 修飾符的實質。   static 的兩大作用:  一、控制存儲方式:  static...查看完整版>>深入解析C++中的三個修飾符
 
C++中的mutable和const
聲明:這裏討論的const是用來修飾函數的const,而不是用來修飾變量的const。雖然是同一個關鍵字,但yayv還是覺得把他們當作2個關鍵字來理解更好一些。 C++中const關鍵字用來表示一個常量,同時const也用來修飾函數...查看完整版>>C++中的mutable和const
 
翻譯:Effective C++, 3rd Edition, Item 20: 用傳引用給 const(pass-by-reference-to-const)取代傳值(pass-by-value)(下)
(接上篇)如果你掀開編譯器的蓋頭偷看一下,你會發現用指針實現引用是非常典型的做法,所以以引用傳遞某物實際上通常意味著傳遞一個指針。由此可以得出結論,如果你有一個內建類型的對象(例如,一個 int),以傳值...查看完整版>>翻譯:Effective C++, 3rd Edition, Item 20: 用傳引用給 const(pass-by-reference-to-const)取代傳值(pass-by-value)(下)
 
 
回到王朝網路移動版首頁