程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C++中 Const 常量的用法

C++中 Const 常量的用法

編輯:關於C語言

1、值替代 C語言中預處理器用值代替名字: #define BUFSIZE 100 C++用const把值代替帶進編譯器領域: const bufsize = 100 ;或 const int bufsize = 100 ; 同時還可以執行常量折疊: char buf[bufsize] ; 1.1 頭文件裡的const 與使用#define一樣,使用const必須把const定義放在頭文件裡。這樣,通過包含頭文件,可把const定義單獨放在一個地方,並把她分配給一個編譯單元。const默認為內部連接,即僅在const被定義過的文件裡才是可見的,而在連接時不能被其他編譯單元看到。   比如說在Test.h中定義了, const int   nTestConst = 1000;   在A.cpp中include"Test.h" 同時在B.cpp中include"Test.h" 不會出現,當沒有定義為const時,因變量定義出現兩次而出錯的情形.     當定義一個const常量時,必須賦一個值給它,除非用extern作了清楚的說明: extern const bufsize ; 雖然上面的extern強制進行了存儲空間分配,但C++編譯器並不為const分配存儲空間,相反它把這個定義保存在它的符號表裡。當const被使用時,它在編譯時會進行常量折疊。 1.2 const的安全性 如果想要一個值保持不變,就應該使它成為一個常量const)。 1.3 集合 const可以用於集合,但必須分配內存,意味著“不能改變的一塊存儲”。但其值在編譯時不能被使用。 const int i [] = {1,2,3,4}; // float f [ i [3] ]; // Illegal 2,指針 當使用帶有指針的const時,有兩種選擇:1、或者const修飾指針正指向的對象,2、const修飾存儲在指針本身的地址。 2.1 指向const的指針 使用指針定義的技巧,正如任何復雜的定義一樣,是在標識符的開始處讀它並從裡到外讀。如果我們要使正指向的元素不發生改變,得寫: const int * x; 從標識符開始:“x 是一個指針,指向一個const int。” 把const從一邊移到另一邊,結果一樣。 int const * x; 2.2 cosnt指針 是指針本身成為一個const指針,必須把const標明的部分放在*的右邊,如: int d = 1; int * const x = &d; 指針本身是const指針,編譯器要求給它一個初始化值,這個值在指針壽命期間不變。然而要改變它所指向的值是可以的,可以寫*x = 2。   這些可以總結成這樣一句話: 以*為分界點,  當const在*的左邊時,實際物體值不變 當const在*的右邊時,指針不變, 即,左物右指 這樣來記比較方便!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved