struct s1{ char c1, c2; int n; }; struct s2{ int n; struct s1 m; } m = {1, {‘a’, 'b’, 2} }; int main(void) { printf("%d,%d,%c,%c\n", m.n, m.m.n, m.m.c1, m.m.c2); /* 输出数据之间没有空格分隔 */ return 0; }
时间: 2023-05-02 12:03:19 浏览: 292
这段代码创建了两个结构体s1和s2,其中s1包含两个char类型变量和一个int类型变量,s2包含一个int类型变量和一个s1类型变量。通过结构体初始化的方式给s2类型变量m赋初值,然后在主函数中打印m的值以及m中包含的s1类型变量的值。由于使用的是结构体初始化的方式,因此各个数据之间没有空格分隔。
相关问题
struct s1 { int a; char b; char c; }; sizeof(struct s1) = ?
根据内存对齐的原则,结构体中的成员变量会被调整到内存地址是其自身大小的倍数的位置。因此,结构体 `s1` 中的 `int a` 会被调整到 4 字节对齐,而 `char b` 和 `char c` 会被调整到 1 字节对齐。因此,`s1` 的大小为 4 + 1 + 1 = 6 字节。所以,`sizeof(struct s1) = 6`。
写出下面程序的运行结果 。 struct s1{ char c1, c2; int n; }; struct s2{ int n; struct s1 m; } m = {1, {‘A’, 'B’, 2} }; int main(void) { printf("%d,%d,%c,%c\n", m.n, m.m.n, m.m.c1, m.m.c2); /* 输出数据之间没有空格分隔 */ return 0; }
该程序的运行结果为:
```
1,2,A,B
```
解释如下:
程序定义了两个结构体 `s1` 和 `s2`,其中 `s1` 包含两个 `char` 类型的成员和一个 `int` 类型的成员,而 `s2` 包含一个 `int` 类型的成员和一个 `s1` 类型的成员。在 `main()` 函数中,我们使用以下语句初始化了一个 `s2` 类型的结构体变量 `m`:
```c
struct s2 m = {1, {'A', 'B', 2}};
```
这表示 `m` 的 `n` 成员为 1,`m` 的 `m` 成员为一个 `s1` 类型的结构体,其中 `c1` 成员为字符 `'A'`,`c2` 成员为字符 `'B'`,`n` 成员为 2。
然后,我们使用以下语句输出 `m` 的各个成员:
```c
printf("%d,%d,%c,%c\n", m.n, m.m.n, m.m.c1, m.m.c2);
```
这表示分别输出 `m` 的 `n` 成员、`m` 的 `m` 成员的 `n` 成员、`m` 的 `m` 成员的 `c1` 成员、`m` 的 `m` 成员的 `c2` 成员,并且数据之间没有空格分隔。因此,程序输出的结果为:
```
1,2,A,B
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)