📜  对符号数组使用 `%i` 或 `%I`. (convention:Style SymbolArray) (1)

📅  最后修改于: 2023-12-03 15:39:10.023000             🧑  作者: Mango

对符号数组使用 %i%I (convention: Style SymbolArray)

在C语言中,符号数组指的是一个包含标识符名的字符串数组。这种数组通常用于词法分析器和编译器等程序中,用来存储关键字、函数名、变量名等标识符。

在输出符号数组时,我们可以使用 %s 格式化字符来打印数组元素。然而,在某些情况下,我们可能需要输出符号数组元素的位置,即数组下标。这时,我们可以使用 %i%I 格式化字符。

使用 %i%I

%i%I 都可以用于按整数格式输出。

  • %i:按有符号整数格式输出。 这意味着,如果给定的整数为正数,则输出时不会显示正号。
  • %I:按无符号整数格式输出。 这意味着,给定的整数总是会显示为正数。

例如,在以下示例代码中,我们定义了一个名为 keywords 的符号数组,并使用 %i%s 将其输出:

#include <stdio.h>

int main()
{
    char *keywords[] = {"if", "else", "while", "return", "main"};
    int i;

    /* 使用 %i 和 %s 输出数组元素 */
    for (i = 0; i < 5; i++) {
        printf("%2i: %s\n", i, keywords[i]);
    }

    return 0;
}

输出结果为:

 0: if
 1: else
 2: while
 3: return
 4: main

注意,我们在 %i 前面加上了数字 2,表示输出的整数占用两个字符的宽度。这样做可以让所有的数字都输出对齐,使输出更美观。

总结

对于符号数组,使用 %i%I 格式化字符可以方便地输出数组元素的位置。在进行输出时,我们可以指定输出的整数所占用的宽度,以实现输出对齐。