Objective-C 常量
常数(constants)指的是程序在执行过程中可能不会更改的固定值。这些固定值也称为 literals(常量)。
常数可以是任何基本数据类型,如 整数常数、浮点常数、字符常数 或 字符串文字。还有 枚举常数。
常数(constants)与正则变量一样处理,只是定义后不能修改其值。
整数常量
整数常量可以是十进制、八进制或十六进制常量。前缀指定基数:0x 或 0x 表示十六进制,0 表示八进制,nothing 表示十进制。
整数常量也可以有一个后缀,该后缀是 U 和 L 的组合,分别表示无符号和长。后缀可以是大写或小写,并且可以是任何顺序。
下面是一些整数常量的实例:
212 /* Legal */
215u /* Legal */
0xFeeL /* Legal */
078 /* Illegal: 8 is not an octal digit */
032UU /* Illegal: cannot repeat a suffix */
以下是各种整数常量的其他实例:
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
浮点型常量
浮点常量有整数部分、小数点、小数部分和指数部分。可以以十进制形式或指数形式表示浮点常量。
当使用十进制形式表示时,必须包括小数点、指数或两者,当使用指数形式表示时,必须包括整数部分、小数部分或两者。符号指数由 e 或 E 引入。
下面是一些浮点常量的实例:
3.14159 /* Legal */
314159E-5L /* Legal */
510E /* Illegal: incomplete exponent */
210f /* Illegal: no decimal or exponent */
.e55 /* Illegal: missing integer or fraction */
字符常数
字符常数用单引号括起来,例如 'x',可以存储在 char
类型的简单变量中。
字符常量可以是普通字符(例如 'x')、转义序列(例如 '\t')或通用字符(例如 '\u02C0')。
C 中的某些字符用反斜杠表示时,它们将具有特殊意义,用于表示换行符(\n
)或制表符(\t
)。在这里,您有一些这样的转义序列代码的列表:
转义序列 | 含义 |
---|---|
\ | \ character |
\' | ' character |
\” | “ character |
\? | ? character |
\a | Alert or bell |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage return |
\t | Horizontal tab |
\v | Vertical tab |
\ooo | Octal number of one to three digits |
\xhh … | Hexadecimal number of one or more digits |
下面的实例显示了几个转义序列字符:
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Hello\tWorld\n\n");
return 0;
}
结果如下:
2022-07-07 22:17:17.923 demo[17871] Hello World
字符串常量
字符串常量或常量包含在双引号 "" 中。字符串包含与字符文字类似的字符:普通字符、转义序列和通用字符。您可以使用字符串常量将长行分解为多行,并使用空格将其分隔。
下面是一些字符串文字的示例。这三种形式都是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
定义常量
在 C 中有两种简单的方法来定义常量:
- 使用
#define
预处理 - 使用
const
关键字
define 预处理
以下是使用 #define
预处理器定义常量的形式:
#define identifier value
实例
#import <Foundation/Foundation.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
NSLog(@"value of area : %d", area);
NSLog(@"%c", NEWLINE);
return 0;
}
结果如下:
2022-07-07 22:18:16.637 demo[21460] value of area : 50
2022-07-07 22:18:16.638 demo[21460]
常量关键字
可以使用 const
前缀声明具有特定类型的常量,如下所示:
const type variable = value;
实例
#import <Foundation/Foundation.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
NSLog(@"value of area : %d", area);
NSLog(@"%c", NEWLINE);
return 0;
}
结果如下:
2022-07-07 22:19:24.780 demo[25621] value of area : 50
2022-07-07 22:19:24.781 demo[25621]