使用结构体时注意

发布时间:2024年01月03日

1. 结构体的初始化

struct nub {
  int a;
  int name[10];
};


struct nub n = {.a = 10};

代码中,对于结构体变量的初始化: 使用 .属性名 的形式,来指定对哪个属性进行初始化(但是vs,vc是不支持的,gcc支持)

?

2. 可以直接将结构体赋值给另外一个结构体(和memcopy类似)?

?我们定义一个数组,是无法使用一个数组名 = 另一个数组名,来进行数组的赋值。

但是,结构体可以(即使它内部包含数组):就相当于时memcopy()一样的内存拷贝。?

#include <stdio.h>
#include <Windows.h>
#include <string.h>

struct student {
	int a;
	char name[10];
};

int main(void)
{
	
	struct student stu1,stu2;
	stu1.a = 10;
	strcpy(stu1.name, "12");

	stu2 = stu1; // 一个结构体的值可以赋值给另外一个
	// 和memcpy类似    

	memcpy(&stu2, &stu1, sizeof(struct student));

	printf("%d", stu2.a);

	system("pause");

	return 0;
}

?代码中:将stu1的值直接拷贝到stu2中了。(使用memcopy()函数也可以实现)。

?

文章来源:https://blog.csdn.net/weixin_68026222/article/details/135373800
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。