【发布时间】:2017-03-27 07:52:16
【问题描述】:
我必须将 char 数组初始化为 0。我是这样做的
char array[256] = {0};
我想检查它是否有效,所以我尝试测试它
#include <stdio.h>
int main()
{
char s[256] = {0};
printf("%c\n", s[10]);
return 0;
}
编译运行后,命令行输出什么也没有。
我错过了什么?也许我以错误的方式初始化了数组?
【问题讨论】:
-
你希望它打印什么?
-
它打印一个字面值零,因此
printf认为它已经完成,因为这标志着一个字符串的结束。 -
我的错,弄错了 :) @SouravGhosh
-
@RatulSharker 没问题。 :)
-
a 0 是整数,'0' 是字符。所以这一行:
char s[256] = {0};用'\0'(0x00) 填充数组,当你希望它用0x30填充数组时建议使用:char s[256] = {'0'};
标签: c char printf format-specifiers