如果执行以下代码,data1的内容是什么?
struct {
int a;
char b;
}st1;
struct {
char c;
int d;
}st2;
main()
{
struct st1 data1 = {0};
struct st2 data2 = {'A',10};
data1 = data2;
}
只有当两个结构具有相同类型时,这才有效。否则,您必须得到一个编译错误。
(如果你的编译器生成了一个可执行文件,它可以做任何事情)。
如果执行以下代码,data1的内容是什么?
您的代码无法执行,因为它不会编译。你会得到一个编译器错误,例如
"error: incompatible types when assigning to type ‘struct st1’ from type ‘struct st2’"
这将导致一个错误,因为st1和st2是临时结构的对象。所以你最好试试这个。。。您只需要在定义临时结构期间创建对象。
# include <stdio.h>
struct {
int a;
char b;
}st1 = {0};
struct {
char c;
int d;
}st2 = {'A', 10};;
int main()
{
// struct st1 data1 = {0};
// struct st2 data2 = {'A',10};
// data1 = data2;
return 0;
}