C语言 结构体A中包含结构体B,如何在函数struct2buf中通过结构体A的指针访问结构体B中的变量C
时间: 2024-03-24 21:32:12 浏览: 53
C语言中获取文件状态的相关函数小结
在C语言中,如果结构体A中包含结构体B,我们可以通过结构体A的指针访问结构体B中的变量。首先,你需要确保结构体B的变量是公开的(使用`public`关键字),然后你可以通过结构体A的指针来访问它。
以下是一个简单的示例:
```c
#include <stdio.h>
// 定义结构体B,其中变量C是公开的
struct B {
int C;
};
// 定义结构体A,其中包含结构体B
struct A {
struct B B;
};
// 函数struct2buf,通过结构体A的指针访问结构体B中的变量C
void struct2buf(struct A *a) {
printf("Value of variable C in struct B: %d\n", a->B.C);
}
int main() {
// 创建并初始化结构体A
struct A a;
a.B.C = 10;
// 通过结构体A的指针调用函数struct2buf
struct2buf(&a);
return 0;
}
```
在这个示例中,我们首先定义了两个结构体,一个是结构体B,一个是结构体A。在结构体B中,我们声明了一个公开的变量C。然后,我们在结构体A中包含了结构体B。
在函数struct2buf中,我们通过结构体A的指针a来访问结构体B中的变量C。因为C是公开的,所以我们可以直接通过指针a来访问它。
阅读全文