常量

常量

:C/C++ 中的常量,指的是在程式執行過程中其資料值不可更改的

量。

【C 入門】常量與變數

整型常量(整數)

十進位制整數。

例:7,20,1000。

八進位制整數

:以 0 開頭的,由數字 0~7 組成。例:07,024,01750。

十六進位制整數

:以 0x 或 0X 開頭的,由數字 0~9、字母 a~f 或字母 A~F 組成。例:0x07,0x14,0x3e8。

長整型常數

:以字母 l 或 L 結尾的整數,長整型常數佔用的儲存空間是基本型常量的 2 倍。例:7L,20L,1000L。

Example

:將十進位制整數 7、20、1000 轉化為八進位制整數、十六進位制整數和長整型常數。

【C 入門】常量與變數

實型常量(小數)

實型常量具有以下兩種表示方式:

小數形式:

帶小數點的常數。例如:21。290000。

指數形式(科學計數法)

:由數符尾數(整數或小數)、階碼標誌(E 或 e)、階符和整數階碼組成的常數。例如:2。129000e+001。

NOTE

實型常量預設為雙精度 double 型別。

若實型常量以 F 或 f 結尾,表示該實型常量為單精度 float 型別常量。

若實型常量以 l 或 L 結尾,表示該實型常量為 long double 型別常量。

Example

12。3f // float 型

12。3 // double 型

12。3e4f // float 型

12。3e4 // double 型

12。3e4l // long double 型

2。1E+5 // 2。1 * 10^5 double 型

2。1E+5f // 2。1 * 10^5 float 型

123E-3 // 123 * 10^(-3) double 型

123E-3f // 123 * 10^(-3) float 型

字元型常量

一般字元常量

:一個用單引號 ‘ ’ 括起來的字元。

跳脫字元常量

:一個用單引號 ‘ ’ 括起的,並以反斜槓 ‘\’ 開頭的字元,用於表示具有特殊功能的字元。

NOTE

字元型常量

佔用 1Byte 記憶體空間,以 ASCII 碼形式(即整型)儲存。 因此,

字元型資料物件

和整型資料物件是可相互轉換的。

ASCII 碼錶

【C 入門】常量與變數

字串

常量

一個用雙引號 “ ” 括起來的字串。

NOTE

字串常量

中的字元序列在記憶體中連續儲存,並在最後面加上跳脫字元 ‘\0’ 作為字串結束標誌,字元 ‘\0’ 佔用 1Byte

記憶體空間

例如:字串 “HELLO” 在記憶體實際佔據 6Bytes,實際字元存放順序為 ‘H’、‘E’、‘L’、‘L’、‘O’、‘\0’。

Example

#define CharA ‘a’

//‘a’ 為字元常量,佔用 1 Byte

#define StringA “a”

//“a” 為字串常量,佔用 2 Bytes

#define StringB “Hello World!”

//“Hello World!” 為字串常量,佔用 13 Bytes

int

main

()

{

printf

“Length of Char

\‘

%c

\’

is %d。

\r\n

CharA

sizeof

CharA

/

sizeof

char

));

printf

“Length of string

\”

%s

\“

is %d。

\r\n

StringA

sizeof

StringA

/

sizeof

char

));

printf

“Length of string

\”

%s

\“

is %d。

\r\n

StringB

sizeof

StringB

/

sizeof

char

));

return

0

}

輸出結果

【C 入門】常量與變數

符號常量

使用符號來作為常量的標識,所以也叫常量名。

用 #define 來定義字元常量

//形式:

#define 符號常量名

常量表達式

Example

//例:定義 MAX 符號常量

#define MAX 100

//其中: #define為預處理命令宏定義

用 const 定義符號常量

//形式:

const 資料型別 符號常量名 = 常量表達式;

Example

//例:定義一個 double 型常量 PI ,其值為 3。1415926。

const double PI = 3。1415926;

NOTE

使用 const 方式定義

符號常量

時,必須初始化符號常量

在程式執行過程中,不能修改符號常量的資料值

符號常量名一般用大寫字母表示

符號常量定義中的常量表達式不能含有變數或函式

ERROR Example 1

//錯誤示例: 使用const方式定義符號常量時必須初始化,並且在程式執行過程中不能修改其值

const double PI;

PI = 3。1415926;

ERROR Example 2

//錯誤示例:常量表達式不能含有變數或函式

const int number = max(1 , 5);

變數

變數

:表示一個具有名字的,具有特定屬性的

儲存空間

。在程式執行過程中該儲存空間內的資料值可以被改變。

變數三要素

變數名

資料型別

資料值

變數的定義

//變數名列表可以包含若干個變數,用逗號隔開

資料型別 變數名列表;

NOTE

:習慣上,變數名使用

小寫字母

表示,而大寫字母常用於字元常量或自定義資料型別名。

Example

char a;

char a1, a2, a3;

變數的賦值

:使用賦值運算子 “=” 可以給變數賦值。

變數的初始化

:在變數定義時,給變數賦一個初始值,稱為變數的初始化。

Example 1

:變數賦值

int x; //宣告定義

x = 10; //變數賦值

Example 2

:變數的初始化

char c = ‘x’; //宣告並初始化

long w = 8L, l = 10L; //多個變數初始化:w = 8, l = 8

double area

, radius = 20; //將變數radius初始化為20, area只是定義沒有初始化。

NOTE

:若只是宣告定義了變數的資料型別,但卻沒有為變數賦予資料值,則變數所分配的記憶體單元中還保留著自上一次記憶體單元儲存的舊資料。