C语言结构体面试题有哪些,给出答案
时间: 2023-12-14 14:38:33 浏览: 260
下面是几道常见的 C 语言结构体面试题及其答案:
1. 结构体占用的内存大小是多少?
答:结构体占用的内存大小是其各个成员变量所占用的内存大小之和,但是由于内存对齐的原因,结构体的实际大小可能会大于其成员变量大小之和。
2. 如何定义一个包含多个成员变量的结构体?
答:可以使用如下语法定义结构体:
```c
struct Person {
char name[20];
int age;
float height;
};
```
这个例子定义了一个名为 Person 的结构体,它包含三个成员变量:一个字符串类型的 name,一个整型的 age 和一个浮点型的 height。
3. 如何定义一个结构体数组?
答:可以使用如下语法定义结构体数组:
```c
struct Person people[10];
```
这个例子定义了一个包含 10 个 Person 结构体的数组。
4. 结构体和联合体有什么区别?
答:结构体和联合体都是用来组织和存储不同类型的数据,但是它们的区别在于对内存的使用方式不同。结构体的各个成员变量会占用不同的内存空间,而联合体的所有成员变量会共享同一段内存空间,只有其中一个成员变量是可用的。
5. 如何定义一个嵌套的结构体?
答:可以在一个结构体中使用另一个结构体作为成员变量,从而定义一个嵌套的结构体。例如:
```c
struct Address {
char city[20];
char street[20];
};
struct Person {
char name[20];
int age;
struct Address address;
};
```
这个例子定义了一个嵌套的结构体,Person 结构体中包含了一个 Address 结构体作为其成员变量。
阅读全文