#include <stdio.h>
int main(){
struct Student{
char name[50];
int age;
double score;
};//创建一个名字为Student的结构体,包含姓名、年龄、分数
struct Student a;
scanf("%s%d%lf",a.name,&a.age,&a.score);
struct Student *p;
p=&a;
printf("姓名:%s 年龄:%d 成绩:%lf\n",a.name,a.age,a.score);
printf("姓名:%s 年龄:%d 成绩:%lf",p->name,p->age,p->score);
return 0;
}
1.可以通过 变量名.成员名 的方式访问一个结构体变量的成员
.为结构体成员运算符
2.可以通过 指针->成员变量名 的方式访问一个结构体变量的成员
->为指向结构体成员运算符
初始化
#include <stdio.h>
int main(){
struct Student{
char name[50];
int age;
double score;
};
struct Student a={"琉璃",21,89.6};//完全初始化
struct Student b={"销数",20}; //不完全初始化,未被赋值的默认为0
struct Student c=a; //定义结构变量可以使用其他结构体变量进行初始化
//scanf("%s%d%lf",a.name,&a.age,&a.score);
struct Student *p;
p=&b;
printf("姓名:%s 年龄:%d 成绩:%lf\n",a.name,a.age,a.score);
printf("姓名:%s 年龄:%d 成绩:%lf\n",p->name,p->age,p->score);
printf("姓名:%s 年龄:%d 成绩:%lf\n",c.name,c.age,c.score);
return 0;
}
结构体定义
#include <stdio.h>
struct Student{ //定义时为结构体起一个结构体标记名
char name[50];
int age;
double score;
};
struct Student1{ //定义时为结构体起一个结构体标记名并定义这种数据类型的变量
char name[50];
int age;
double score;
}A,*n;
struct Student3{ //定义时为结构体起一个结构体标记名并定义这种数据类型的变量并为变量进行初始化
char name[50];
int age;
double score;
}B={"李四",20,65.2},*m;
struct { //只定义结构体类型的变量
char name[50];
int age;
double score;
}C,*l;
int main(){
struct Student a={"琉璃",21,89.6};//完全初始化
struct Student b={"销数",20}; //不完全初始化,未被赋值的默认为0
struct Student c=a; //定义结构变量可以使用其他结构体变量进行初始化
//scanf("%s%d%lf",a.name,&a.age,&a.score);
struct Student *p;
p=&b;
printf("姓名:%s 年龄:%d 成绩:%lf\n",a.name,a.age,a.score);
printf("姓名:%s 年龄:%d 成绩:%lf",p->name,p->age,p->score);
printf("姓名:%s 年龄:%d 成绩:%lf\n",c.name,c.age,c.score);
return 0;
}
结构体定义可以定义在函数内部或者外部,结构体标记和变量至少要有一种,如果有变量也可以进行初始化