结构数组

执行下面的代码,声明结构数组。

#include <stdio.h>
#include <string.h>

struct person
{
    char name[20];
    int age;
};

int main(int argc, char const *argv[])
{
    struct person p[3];
    strcpy(p[0].name, "Tom");
    p[0].age = 18;
    printf("name: %s, age: %d.\n", p[0].name, p[0].age);
    strcpy(p[1].name, "Jerry");
    p[1].age = 16;
    printf("name: %s, age: %d.\n", p[1].name, p[1].age);
    strcpy(p[2].name, "Spike");
    p[2].age = 20;
    printf("name: %s, age: %d.\n", p[2].name, p[2].age);
    return 0;
}

也可以通过下面的方式声明结构数组并进行初始化。

#include <stdio.h>

struct person
{
    char name[20];
    int age;
} p[3] = {
    {"Tom", 18},
    {"Jerry", 16},
    {"Spike", 20}
};

int main(int argc, char const *argv[])
{
    printf("name: %s, age: %d.\n", p[0].name, p[0].age);
    printf("name: %s, age: %d.\n", p[1].name, p[1].age);
    printf("name: %s, age: %d.\n", p[2].name, p[2].age);
    return 0;
}

执行下面的代码,计算结构所占用的存储空间字节数。

#include <stdio.h>

struct person
{
    char name[20];
    int age;
};

int main(int argc, char const *argv[])
{
    struct person p[3];
    printf("%d\n", sizeof p);
    printf("%d\n", sizeof(p));
    return 0;
}

results matching ""

    No results matching ""