Objective-C 常量

常数(constants)指的是程序在执行过程中可能不会更改的固定值。这些固定值也称为 literals(常量)。

常数可以是任何基本数据类型,如 整数常数浮点常数字符常数字符串文字。还有 枚举常数

常数(constants)与正则变量一样处理,只是定义后不能修改其值。


整数常量

整数常量可以是十进制、八进制或十六进制常量。前缀指定基数:0x 或 0x 表示十六进制,0 表示八进制,nothing 表示十进制。

整数常量也可以有一个后缀,该后缀是 U 和 L 的组合,分别表示无符号和长。后缀可以是大写或小写,并且可以是任何顺序。

下面是一些整数常量的实例:

  1. 212 /* Legal */
  2. 215u /* Legal */
  3. 0xFeeL /* Legal */
  4. 078 /* Illegal: 8 is not an octal digit */
  5. 032UU /* Illegal: cannot repeat a suffix */

以下是各种整数常量的其他实例:

  1. 85 /* decimal */
  2. 0213 /* octal */
  3. 0x4b /* hexadecimal */
  4. 30 /* int */
  5. 30u /* unsigned int */
  6. 30l /* long */
  7. 30ul /* unsigned long */

浮点型常量

浮点常量有整数部分、小数点、小数部分和指数部分。可以以十进制形式或指数形式表示浮点常量。

当使用十进制形式表示时,必须包括小数点、指数或两者,当使用指数形式表示时,必须包括整数部分、小数部分或两者。符号指数由 e 或 E 引入。

下面是一些浮点常量的实例:

  1. 3.14159 /* Legal */
  2. 314159E-5L /* Legal */
  3. 510E /* Illegal: incomplete exponent */
  4. 210f /* Illegal: no decimal or exponent */
  5. .e55 /* Illegal: missing integer or fraction */

字符常数

字符常数用单引号括起来,例如 'x',可以存储在 char 类型的简单变量中。

字符常量可以是普通字符(例如 'x')、转义序列(例如 '\t')或通用字符(例如 '\u02C0')。

C 中的某些字符用反斜杠表示时,它们将具有特殊意义,用于表示换行符(\n)或制表符(\t)。在这里,您有一些这样的转义序列代码的列表:

转义序列含义
\\ character
\' ' character
\”“ character
\?? character
\aAlert or bell
\bBackspace
\fForm feed
\nNewline
\rCarriage return
\tHorizontal tab
\vVertical tab
\oooOctal number of one to three digits
\xhh …Hexadecimal number of one or more digits

下面的实例显示了几个转义序列字符:

  1. #import <Foundation/Foundation.h>
  2. int main() {
  3. NSLog(@"Hello\tWorld\n\n");
  4. return 0;
  5. }

结果如下:

  1. 2022-07-07 22:17:17.923 demo[17871] Hello World

字符串常量

字符串常量或常量包含在双引号 "" 中。字符串包含与字符文字类似的字符:普通字符、转义序列和通用字符。您可以使用字符串常量将长行分解为多行,并使用空格将其分隔。

下面是一些字符串文字的示例。这三种形式都是相同的字符串。

  1. "hello, dear"
  2. "hello, \
  3. dear"
  4. "hello, " "d" "ear"

定义常量

在 C 中有两种简单的方法来定义常量:

  • 使用 #define 预处理
  • 使用 const 关键字

define 预处理

以下是使用 #define 预处理器定义常量的形式:

  1. #define identifier value
实例
  1. #import <Foundation/Foundation.h>
  2. #define LENGTH 10
  3. #define WIDTH 5
  4. #define NEWLINE '\n'
  5. int main() {
  6. int area;
  7. area = LENGTH * WIDTH;
  8. NSLog(@"value of area : %d", area);
  9. NSLog(@"%c", NEWLINE);
  10. return 0;
  11. }

结果如下:

  1. 2022-07-07 22:18:16.637 demo[21460] value of area : 50
  2. 2022-07-07 22:18:16.638 demo[21460]

常量关键字

可以使用 const 前缀声明具有特定类型的常量,如下所示:

  1. const type variable = value;
实例
  1. #import <Foundation/Foundation.h>
  2. int main() {
  3. const int LENGTH = 10;
  4. const int WIDTH = 5;
  5. const char NEWLINE = '\n';
  6. int area;
  7. area = LENGTH * WIDTH;
  8. NSLog(@"value of area : %d", area);
  9. NSLog(@"%c", NEWLINE);
  10. return 0;
  11. }

结果如下:

  1. 2022-07-07 22:19:24.780 demo[25621] value of area : 50
  2. 2022-07-07 22:19:24.781 demo[25621]
注意,用大写字母定义常量是一种很好的编程习惯。