结构体是 C 语言中特别重要的知识点,结构体使得 C 语言有能力描述复杂类型。比如描述学生,学生包含: 名字 + 年龄 + 性别 + 学号 这几项信息。![]()
这里只能使用结构体来描述了。 例如:
struct Stu{char name [ 20 ]; // 名字int age ; // 年龄char sex [ 5 ]; // 性别char id [ 15 ] ; // 学号};
结构体的初始化:
// 打印结构体信息struct Stu s = { " 张三 " , 20 , " 男 " , "20180101" };//. 为结构成员访问操作符printf ( "name = %s age = %d sex = %s id = %s\n" , s . name , s . age , s . sex , s . id );//-> 操作符struct Stu * ps = & s ;printf ( "name = %s age = %d sex = %s id = %s\n" , ps -> name , ps -> age , ps -> sex , ps -> id );
#include<stdio.h>
//结构体可以让C语言创建新的类型出来
//创建一个学生
struct Stu
{
char name[20]; //成员变量
int age;
double score;
};
//创建一个书的类型
struct Book
{
char name[20];
float price;
char id[30];
};
int main()
{
struct Stu s={"张三",20,85.5};//结构体的创建和初始化
printf("1:%s %d %lf\n", s.name, s.age, s.score);//.点操作符- 找到这个结构体的成员,访问这个成员 结构体变量(s).成员变量
struct Stu* ps = &s; //ps解&,就是*ps, *ps=s ;结构性类型的指针 ps;*ps是解引用操作 *ps就是s !!!!!!
printf("2:%s %d %lf\n", (*ps).name, (*ps).age, (*ps).score);
printf("3:%s %d %lf\n", ps->name, ps->age, ps->score); //结构体指针(ps)->成员变量名
return 0;
}
运行结果:
指针补充:
数据类型* [指针变量] :存取一个整型的地址
&[变量名]:取该变量的地址
*[指针变量名]:通过地址找到某个地址中存储的数