C和指针 第十二章 结构体 整体赋值 error: expected expression

定义结构体后整体赋值时发生错误

typedef struct NODE {
	struct NODE *fwd;
	struct NODE *bwd;
	int value;
} Node;
//声明变量
Node first;
first = {NULL, &second, 4};

错误: error: expected expression

之所以不行是,{}内容被当做语句块了,c语言允许直接对结构体初始化,或者在赋值的时候加上类型说明,或者是逐一赋值。

初始化赋值: 

typedef struct NODE {
	int value
} Node;
//初始化赋值
Node a = {1};
Node b;
b = a;

添加类型赋值:

Node A;
A = (Node){NULL, NULL, 1};

 单个赋值:

Node A;
A.value = 1;

所以,除非初始化或者强制类型转换否则,无法整体赋值结构体。

http://stackoverflow.com/questions/12189480/why-structs-cannot-be-assigned-directly

转载于:https://www.cnblogs.com/yangxunwu1992/p/5848149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值