未初始化的static int的默认值是零,如果数据类型是char呢?
static int
char
#include<stdio.h> int main() { static char i; printf("%c", i); return 0; }
这个程序执行时没有任何输出-为什么?
t0ybt7op1#
在您的示例中,i默认初始化为零,当您使用printf的%c将该作为字符输出时,您将输出空字符\0,这就是您看不到任何内容的原因。如果要查看数值,应使用printf("%i", (int)i)
i
printf
%c
\0
printf("%i", (int)i)
jvidinwx2#
在C static中,变量是自动初始化的。
static
int
0
float
0.0
NULL
2条答案
按热度按时间t0ybt7op1#
在您的示例中,
i
默认初始化为零,当您使用printf
的%c
将该作为字符输出时,您将输出空字符\0
,这就是您看不到任何内容的原因。如果要查看数值,应使用
printf("%i", (int)i)
jvidinwx2#
在C
static
中,变量是自动初始化的。int
等,则初始化为0
。float
等浮点数类型,则初始化为0.0
。char
类型,则将使用空字符\0
进行初始化。NULL