int main(){ struct Boy{
char *name;
int age;
}boy[5]={{"L",25},{"P",14},{"D",18},{"S",25},{"A",23}};
2)先定义后初始化,整体赋值
int main(){
struct Boy{
char *name;
int age;
};
struct Boy boy[2];
//等号左右两侧类型要一致
boy[0]=(struct Boy){"A",18};
boy[1]=(struct Boy){"B",23};
6.思考:用结构体实现简单通讯录
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(){
struct Address{
char * name;
char * phoneNum;
}person[N];
printf("请输入联系人姓名:\n");
for (int i=0; i<N; i++) {
scanf("%s",person.name);
scanf("%s",person.phoneNum);
}
for (int i=0; i<N; i++) {
printf("姓名:%s,电话号码:%s\n",person.name,person.phoneNum);
}
return 0;
}
7.结构体的嵌套
1)嵌套其他结构体的变量
struct Date{
int year;
int month;
int day;
};
struct Student{
char *name;
struct Date birthday;
};
2)嵌套自己类型的指针
int main(){
struct Person{
char *name;
int age;
struct Person *child;
};
struct Person kim={"kim",8,NULL};
struct Person p={"林志颖",38,&kim};
printf("%s的儿子是%s\n",p.name,(*(p.child)).name);
return 0;
}
8.结构指针作为函数的参数
struct Car{
char *name;
int speed;
};
void NewCar(struct Car *p){
strcpy(*p.name,"奥拓" );
p.speed=100;
}
int main(){
struct Car car1={"奔驰",120};
NewCar(&car1);
printf("car1.name=%s,car1.speed=%d",car1.name,car1.speed);
return 0;
}