📅  最后修改于: 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
格式化字符可以方便地输出数组元素的位置。在进行输出时,我们可以指定输出的整数所占用的宽度,以实现输出对齐。