//结构体与指针
/*
struct Man{
char name[20];
int age;
};
void main(){
struct Man m1 = {"Jack",30};
//结构体指针
struct Man *p = &m1;
printf("%s,%d\n", m1.name, m1.age);
printf("%s,%d\n",(*p).name,(*p).age);
//“->”(箭头)是“(*p).”简写形式
printf("%s,%d\n", p->name, p->age);
//(*env)-> //结构体指针
system("pause");
}
结构体数组
//指针与结构体数组
/*
struct Man{
char name[20];
int age;
};
void main(){
struct Man mans[] = { {"Jack",20}, {"Rose", 19} };
//遍历结构体数组
//1.
struct Man *p = mans;
for (; p < mans + 2; p++){
printf("%s,%d\n", p->name, p->age);
}
//2.
int i = 0;
for (; i < sizeof(mans) / sizeof(struct Man); i++){
printf("%s,%d\n", mans[i].name, mans[i].age);
}
结构体大小问题
struct Man{
int age;
double weight;
};
void main(){
//结构体变量的大小,必须是最宽基本数据类型的整数倍
//提升读取的效率
struct Man m1 = {20,89.0};
printf("%#x,%d\n", &m1,sizeof(m1)); =16,
也就是 应该是12,但是不能和最大的8整除,所以变成了16
getchar();
}