0

以下代码片段有效:

main( )
{
    struct book
    {
        char name[20];
        int noof;
        float prices;
    };
    struct book b={0};
    printf("%d %f", b.noof, b.prices);
}

在这里,我name[ ]被初始化为 0。但是下面的代码片段不起作用:

   main( )
   {
    char c[ ]=0;
    printf("%c", c[0]);
   }    
4

1 回答 1

2

0

char c[ ]=0;

不是有效的数组初始值设定项。你需要在它周围放上大括号:

char c[] = { 0 };

或者,等效地:

char c[] = "";

当您尝试打印时,%c也不会工作,因为字符0通常是不可打印的。尝试使用%d.

printf("%d\n", c[0]);

除此之外,你的main函数应该被声明为 return int

于 2013-06-19T17:35:54.010 回答