发布网友
共1个回答
热心网友
在声明的时候和后续赋值略有不同,在C语言中是两种处理方法。
如果有结构体
struct test
{
int a;
char c;
int b;
};
定义的时候,可以
struct test var = {1,'c', 2};
这样初始化,结果为var.a = 1, var.c = 'c', var.b = 2;
但是如果后续赋值
var = {1,'c', 2};
就会报错。因为在C语言中不支持这种形式的操作。
不过可以取巧转换一下,改成
var = (struct test){1,'c', 2};
这样就可以了。 在这种情况下,系统会申请一个临时变量,并初始化为该值,再对var进行赋值。而同类型结构体之间赋值操作是C语言规则允许的。
热心网友
C 如果是相同的结构,可以直接赋值C 给那个结构。
struct xx {
int x; int y;}
main()
{
struct xx X,Y,Z={55,66}; // Z. 初始化方法
Y.x = 2; Y.y=3; // Y. 给结构成员赋值方法
X=Y; // 这大概是你要的方法
printf("%d %d\n",X.x, X.y); // 打印X
printf("%d %d\n",Z.x, Z.y); // 打印 Z
}
热心网友
如果两个变量具有相同的结构体类型,那么他们就可以彼此赋值。
如:
struct student a, b;
a = b; //合法
热心网友
C语言中,结构体变量是可以直接赋值的。语法上是没有问题的。