面试题答案
一键面试#include <stdio.h>
#include <string.h>
// 定义person结构体
typedef struct {
int age;
char name[20];
} person;
// 定义group结构体
typedef struct {
person member;
int groupId;
} group;
int main() {
// 第一种方式初始化person
person p1 = {25, "Alice"};
// 第二种方式初始化person
person p2;
p2.age = 30;
strcpy(p2.name, "Bob");
// 初始化group
group g1 = { {28, "Charlie"}, 101 };
// 输出结果
printf("p1: age = %d, name = %s\n", p1.age, p1.name);
printf("p2: age = %d, name = %s\n", p2.age, p2.name);
printf("g1: member age = %d, member name = %s, groupId = %d\n", g1.member.age, g1.member.name, g1.groupId);
return 0;
}
上述代码定义了person
结构体和group
结构体,并分别以不同方式对person
进行初始化,以及对包含person
成员的group
结构体进行初始化。
- 定义
person
结构体:包含一个整型成员age
和一个字符数组name
。 - 初始化
person
结构体:- 第一种方式:在定义
p1
时直接使用花括号初始化列表进行初始化。 - 第二种方式:先定义
p2
,然后分别对p2
的成员进行赋值,对于字符串使用strcpy
函数进行赋值。
- 第一种方式:在定义
- 定义
group
结构体:包含一个person
类型的成员member
和一个整型成员groupId
。 - 初始化
group
结构体:在定义g1
时,对member
使用花括号初始化列表,同时对groupId
进行初始化。最后通过printf
函数输出各个结构体成员的值。