测试平台:64位 X86 Ubuntu

 

1. 代码:

#include <stdio.h>
#include <memory.h>

struct st_stu
{
    char *name;
    int age;
    int class;
};

void main(void)
{
    int a[5] = {0};
    //struct st_stu stu= {0};
    struct st_stu stu;
    memset(&stu, 0, sizeof(struct st_stu));

    printf("age: %d, class: %d\n", stu.age, stu.class);
    printf("a[]: %d, %d, %d, %d, %d\n", a[0], a[1], a[2], a[3], a[4]);
}

 

2. 结果:

baoli@ubuntu:~/c$ ./a.out

age: 0, class: 0

a[]: 0, 0, 0, 0, 0

 

 

3. 分析:

1)初始化数组为0时,使用{0},当然也可以使用memset,前者更简单方便。

2)初始化结构体为0时,使用{0}或者memset

 

更多推荐

C语言高级编程:数组和结构体初始化为0的方法