c++ 常量


常量

  1. 常量是固定值,在程序執行期間不會改變。
  2. 常量可以是任何的基本數據類型,可分為整型數字、浮點數字、字符、字符串和布爾值
  3. 常量的值在定義后不能進行修改

一、整數常量

可以是十進制【不帶前綴】、八進制【0】或十六進制【0x 或 0X】的常量

整數常量也可以帶一個后綴,后綴是 U 和 L 的組合,U 表示無符號整數(unsigned),L 表示長整數(long)。后綴可以是大寫,也可以是小寫,U 和 L 的順序任意

212         // 合法的
215u        // 合法的
0xFeeL      // 合法的
078         // 非法的:8 不是八進制的數字
032UU       // 非法的:不能重復后綴

85         // 十進制
0213       // 八進制 
0x4b       // 十六進制 
30         // 整數 
30u        // 無符號整數 
30l        // 長整數 
30ul       // 無符號長整數

 

二、浮點常量

浮點常量由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。

  1. 當使用小數形式表示時,必須包含整數部分、小數部分,或同時包含兩者。
  2. 當使用指數形式表示時, 必須包含小數點、指數,或同時包含兩者。帶符號的指數是用 e 或 E 引入的
3.14159       // 合法的 
314159E-5L    // 合法的 
510E          // 非法的:不完整的指數
210f          // 非法的:沒有小數或指數
.e55          // 非法的:缺少整數或分數

 

 

三、布爾常量

  • true 值代表真。
  • false 值代表假。

不應把 true 的值看成 1,把 false 的值看成 0

 

 

四、字符常量

 

 

 

 

五、字符串常量

括在雙引號 " " 中

包含:普通的字符、轉義序列和通用的字符

 

 

 

六、定義常量

  • 使用 #define 預處理器。
  • 使用 const 關鍵字。

 

(1)#define 預處理器

#include <iostream>
using namespace std;
 
#define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n'
 
int main()
{
 
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

輸出:50

 

(2)const 關鍵字

#include <iostream>
using namespace std;
 
int main()
{
   const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = '\n'; 
  int area; area = LENGTH * WIDTH; cout << area; cout << NEWLINE; return 0; }

結果:50

把常量定義為     大寫字母     形式,是一個很好的編程實踐

 

 

補充:

1.定義成 const 后的常量,程序對其中只能讀不能修改

所以在定義時必須賦初始值,要不然是錯誤的,除非這個變量是用extern修飾的外部變量

const int A=10;       //正確。
const int A;          //錯誤,沒有賦初始值。
extern const int A;   //正確,使用extern的外部變量。

 

 2.

  • const 定義常量之后,是不能夠改變的
  • 宏定義是可以取消的
定義: #define    N    21
取消: #undef    N    12

 

 

3.宏定義 #define 常量const的區別

 

 

 

 

 

 4.

const關鍵字應用

  • 欲阻止一個變量被改變,可使用const,在定義該const變量時,需先初始化,以后就沒有機會改變他了;
  • 對指針而言,可以指定指針本身為const,也可以指定指針所指的數據為const,或二者同時指定為const;
  • 在一個函數聲明中,const可以修飾形參表明他是一個輸入參數,在函數內部不可以改變其值;
  • 對於類的成員函數,有時候必須指定其為const類型,表明其是一個常函數,不能修改類的成員變量;
  • 對於類的成員函數,有時候必須指定其返回值為const類型,以使得其返回值不為“左值”。

 

 

 

5.

 

更多查看:const char*, char const*, char*const 的區別

 

 

 

 6.const 和 define定義常量時,兩個數的范圍不同

 

 

 

 

7.預處理 #define 后不能加分號,程序不會報錯,但 計算會出錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM