C语言中struct和typedef struct的用法和不同


在C语言中,你可以使用struct和typedef struct来定义结构体数据类型,例:

struct persion_info{
	char name[24];
	int age;
}
typedef struct persion_info{
	char name[24];
	int age;
}Persion;

使用struct定义的结构体的用法:

struct persion_info A;
strcpy(A.name,"perfcode.com");
A.age = 2;
printf(A.name);

在声明结构体变量时,你必须使用struct persion_info来声明变量类型;在使用malloc、realloc等函数动态分配内存时,也必须使用struct:

struct persion_info *A;
A = (struct persion_info*)malloc(sizeof(struct persion_info));

而使用typedef struct定义的结构体类型的使用方法则略有不同:

struct persion_info A;
Persion B;

你可以使用 struct persion_info来声明变量,也可使用Persion来声明变量;

需要注意的是,你可能会碰到下面这种情况:

typedef struct {
	char name[24];
	int age;
}Persion;

这种情况,你就不能使用 struct xxx来声明变量了,只能使用Persion来声明。


转载声明
本文版权归作者所有

如需转载,请注明出处;本文地址: https://www.perfcode.com/p/struct-and-typedef-struct-in-c.html