常數指的是程式在執行期間不會改變的固定值。這些固定值也稱為文字。
常數可以是任何基本資料型別,如整數常數,浮點常數,字元常數或字串文字。還有列舉常數。
常數被視為常規變數,只不過它們的值在定義後無法修改。
整數文字可以是十進位制,八進位制或十六進位制常數。字首指定基數或基數:十六進位制為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 */
浮點文字有整數部分,小數點,小數部分和指數部分。 可以以十進位制形式或指數形式表示浮點文字。
在使用小數形式表示時,必須包括小數點,指數或兩者,並且在使用指數形式表示時,必須包括整數部分,小數部分或兩者。 帶符號的指數由e
或E
引入。
以下是浮點文字的一些範例 -
3.14159 /* 合法有效 */
314159E-5L /* 合法有效 */
510E /* 非法無效: 不完整的指數 */
210f /* 非法無效: 沒有小數或指數 */
.e55 /* 非法無效: 缺少整數或分數 */
字元文字用單引號括起來,例如'x'
,可以儲存在char
型別的變數中。
字元文字可以是普通字元(例如,'x'
),跳脫序列(例如,'\t'
),或通用字元(例如,'\u02C0'
)。
C中有某些字元,當它們以反斜槓進行時,它們具有特殊含義,它們用於表示換行符(\n
)或製表符(\t
)。 在這裡,有一些此類跳脫序列程式碼的列表 -
跳脫序列 | 表示含義 |
---|---|
\\ |
\ 字元 |
' 字元 |
|
" 字元 |
|
\? |
? 字元 |
\a |
警報或鈴聲 |
\b |
退格 |
\f |
換頁 |
\n |
換行 |
\r |
回車 |
\t |
水平製表 |
\v |
水直製表 |
\ooo |
八進位制數位的一到三位數 |
以下是顯示一些跳脫序列字元的範例 -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Yiibai\t.com\n\n");
return 0;
}
執行上面範例程式碼,得到以下結果:
Yiibai .com
字串文字或常數用雙引號(""
)括起來。字串包含與字元文字類似的字元:普通字元,跳脫序列和通用字元。 可以使用字串文字將長的一行分成多行,並使用空格分隔它們。
以下是字串文字的一些範例。 這三種形式都是表示相同的字串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
Objetive-C中有兩種簡單的方法來定義常數 -
#define
前處理器。const
關鍵字。以下是使用#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]
使用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]
請注意,使用使用大寫字母來定義常數是一種很好的程式設計習慣。