当前位置:首页 » 编程语言 » c语言结构体赋值可以用吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言结构体赋值可以用吗

发布时间: 2023-08-21 20:09:36

‘壹’ 在C语言中.结构体变量之间可以相互赋值吗

结构体变量直接赋值,就是其本身内存地址空间,按照地址分布直接赋值。
所以两个一样的结构变量可以直接赋值。
但是如果结构成员中有指针,且指针指向的地址大小不一样,是不能直接赋值的。

‘贰’ 结构体什么时候可以直接赋值C

在声明的时候和后续赋值略有不同,在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语言规则允许的。