以下程序的运行结果是: struct stru {int x; char c; }; main() { struct stru a={10, ' x' }, *p=&a; func (p); printf ( “%d,%c” , a.x, a.c);} func (struct stru *b){b->x=20; b->c='y';}
时间: 2024-01-16 20:03:25 浏览: 43
运行结果是:
```
20,y
```
程序中定义了一个结构体`stru`,包含一个`int`类型的成员`x`和一个`char`类型的成员`c`。在`main`函数中,定义了一个`stru`类型的结构体变量`a`,初始化为`{10, ' x' }`,同时定义了一个指向结构体的指针`p`,并将其指向`a`。然后调用函数`func`,将指针`p`作为参数传递给函数。在`func`函数中,将指针所指向的结构体中的`x`成员赋值为`20`,`c`成员赋值为`'y'`。
最后在`main`函数中,输出`a.x`和`a.c`的值,由于在`func`函数中修改了`a`的成员,因此输出的结果为`20,y`。
相关问题
若有如下结构体说明: struct STRU { int a,b;char c;double d; struct STRU *p1; }; 请填空,以完成对t数组的定义,t数组的元素为该结构体类型。 t[20];
可以这样定义t数组:
```
struct STRU t[20];
```
这样就定义了一个名为t、包含20个元素的数组,每个元素都是STRU类型的结构体。
struct xyz{char x;int y;float z;} a;
这段代码定义了一个名为 a 的结构体变量,结构体的成员包括:
- char 类型的 x
- int 类型的 y
- float 类型的 z
结构体的名称为 xyz,定义了一个结构体类型,可以用来创建多个同样结构的变量。
在这个结构体中,x 占用 1 个字节,y 占用 4 个字节,z 占用 4 个字节,结构体总大小为 9 个字节。