C语⾔struct<结构体类型名>结构体变量名
#include<stdio.h>
int main(int argc, char* argv[]) {
char name[20] = "拉稀";
char dogclass = 'A';
int weight = 50;
printf("%s %c %d\n", name, dogclass, weight);
/*定义:
struct <;结构体类型名> {
<;成员类型1> <;成员变量名1>;
<;成员类型2> <;成员变量名2>;
};
使⽤:
struct <;结构体类型名> 结构体变量名;
*/
c语言struct头文件
struct DogProperty {
char name[20];
char dogclass;
int weight;
};
struct DogProperty dog1 = { "狗蛋",'A',50 };
printf("%s %c %d\n", dog1.name, dog1.dogclass, dog1.weight);
/*由于⽤结构体变量每次定义都要 struct <;结构体类型名> 结构体变量名,太烦⼈了;
为了⽅便,我们会使⽤typedef来给结构体起别名
struct <;结构体类型名> {
<;成员类型1> <;成员变量名1>;
<;成员类型2> <;成员变量名2>;
……
} 结构体别名;
typedef struct <;结构体类型名> 结构体别名;
使⽤:
结构体别名变量名;
啊,这个世界安静了!
*/
struct DogProperty1 {
char name[20];
char dogclass;
int weight;
};
typedef struct DogProperty1 DOG;
/* 更懒地写法
typedef struct DogProperty1 {
char name[20];
char dogclass;
int weight;
} DOG;
啊,这个世界更安静了!
*/
DOG dog2 = { "⼆蛋",'B',20 };
printf("%s %c %d\n", dog2.name, dog2.dogclass, dog2.weight);
/* 在C++中
struct DogProperty1 {
char name[20];
char dogclass;
int weight;
};
直接⽤结构体名字定义变量名;
直接⽤结构体名字定义变量名;
啊,啊,这个世界更更安静了!C++⼤法真好
*/
DogProperty1 dog3 = { "⼀柱擎天",'B',20 };
printf("%s %c %d\n", dog3.name, dog3.dogclass, dog3.weight);
/*定义结构体的同时,也可以定义变量,但是结构混乱,不推荐
struct DogProperty {
char name[20];
char dogclass;
int weight;
} dog1;
*/
printf("%d", sizeof(DogProperty));
//结构体成员在内存中存储是⼀整块空间,像数组⼀样,所以应该是25
//但是由于C语⾔内存对齐,提⾼寻址效率,所以是28
}
为了充分考虑不同CPU之间的性能,C语⾔编译器为了提⾼效率,舍弃⼀点空间换时间效率,字节对齐,⼀般以int⼤⼩指标,4个字节,所以结构体⼤⼩是4的倍数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。