常量指的是程式在執行期間不會改變的固定值。這些固定值也稱為文字。
常量可以是任何基本數據類型,如整數常量,浮點常量,字元常量或字串文字。還有枚舉常量。
常量被視為常規變數,只不過它們的值在定義後無法修改。
1. 整數文字
整數文字可以是十進位,八進制或十六進制常量。首碼指定基數或基數:十六進制為0x
或0X
,八進制為0
,十進位為空。
整數文字也可以有一個尾碼,它是U
和L
的組合,分別對於unsigned
和long
。尾碼可以是大寫或小寫,可以按任何順序排列。
以下是整數文字的一些示例 -
212 /* 合法有效 */
215u /* 合法有效 */
0xFeeL /* 合法有效 */
078 /* 非法無效: 8 不是八進制數字 */
032UU /* 非法無效: 不能重複尾碼*/
以下是各種類型的整數文字的一些示例 -
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
2. 浮點文字
浮點文字有整數部分,小數點,小數部分和指數部分。 可以以十進位形式或指數形式表示浮點文字。
在使用小數形式表示時,必須包括小數點,指數或兩者,並且在使用指數形式表示時,必須包括整數部分,小數部分或兩者。 帶符號的指數由e
或E
引入。
以下是浮點文字的一些示例 -
3.14159 /* 合法有效 */
314159E-5L /* 合法有效 */
510E /* 非法無效: 不完整的指數 */
210f /* 非法無效: 沒有小數或指數 */
.e55 /* 非法無效: 缺少整數或分數 */
3. 字元常量
字元文字用單引號括起來,例如'x'
,可以存儲在char
類型的變數中。
字元文字可以是普通字元(例如,'x'
),轉義序列(例如,'\t'
),或通用字元(例如,'\u02C0'
)。
C中有某些字元,當它們以反斜杠進行時,它們具有特殊含義,它們用於表示換行符(\n
)或跳位字元(\t
)。 在這裏,有一些此類轉義序列代碼的列表 -
轉義序列 | 表示含義 |
---|---|
\\ |
\ 字元 |
![]() |
' 字元 |
![]() |
" 字元 |
\? |
? 字元 |
\a |
警報或鈴聲 |
\b |
退格 |
\f |
換頁 |
\n |
換行 |
\r |
回車 |
\t |
水準製錶 |
\v |
水直製錶 |
\ooo |
八進制數字的一到三位數 |
以下是顯示一些轉義序列字元的示例 -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"zaixian\t.com\n\n");
return 0;
}
執行上面示例代碼,得到以下結果:
zaixian .com
4. 字串文字
字串文字或常量用雙引號(""
)括起來。字串包含與字元文字類似的字元:普通字元,轉義序列和通用字元。 可以使用字串文字將長的一行分成多行,並使用空格分隔它們。
以下是字串文字的一些示例。 這三種形式都是表示相同的字串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
5. 定義常量
Objetive-C中有兩種簡單的方法來定義常量 -
- 使用
#define
預處理器。 - 使用
const
關鍵字。
5.1. 使用#define預處理器
以下是使用#define
預處理器定義常量的形式 -
#define identifier value
通過以下示例代碼理解 -
#import <Foundation/Foundation.h>
#define LENGTH 10
#define WIDTH 25
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
NSLog(@"value of area : %d", area);
NSLog(@"%c", NEWLINE);
return 0;
}
執行上面示例代碼,得到以下結果:
2018-11-14 02:12:14.492 main[10613] value of area : 250
2018-11-14 02:12:14.494 main[10613]
5.2. const關鍵字
使用const
關鍵字作為首碼來聲明具有特定類型的常量,如下所示 -
const type variable = value;
通過以下示例代碼理解 -
#import <Foundation/Foundation.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 15;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
NSLog(@"value of area : %d", area);
NSLog(@"%c", NEWLINE);
return 0;
}
執行上面示例代碼,得到以下結果:
2018-11-14 02:15:15.421 main[170983] value of area : 150
2018-11-14 02:15:15.422 main[170983]
請注意,使用使用大寫字母來定義常量是一種很好的編程習慣。