结构体定义
第一种形式
struct 结构体类型名
{
成员表列
};
struct TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
};
怎么使用:
#include <stdio.h>
struct TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
};
int main() {
struct TIME time;
time.year=2021;
printf("%d\n",time.year);
return 0;
}
第二种形式
struct TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}time;
怎么使用:
#include <stdio.h>
struct TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}time;
int main() {
time.year=2021;
printf("%d\n",time.year);
return 0;
}
第三种形式
typedef struct
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
typedef struct _TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
怎么使用:
#include <stdio.h>
typedef struct
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
int main() {
TIME time;
time.year=2021;
printf("%d\n",time.year);
return 0;
}
有了结构体,咱们可以先给它初始化
结构体初始化
常规初始化
#include <stdio.h>
typedef struct
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
int main() {
TIME time;
time.year=2021;//常规初始化
time.date=1;//常规初始化
printf("%d\n",time.year);
return 0;
}
顺序初始化
#include <stdio.h>
typedef struct
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
int main() {
TIME time={1,3,2021,5,16,59};//顺序初始化
printf("%d\n",time.year);
return 0;
}
乱序初始化
#include <stdio.h>
typedef struct
{
int date;
int month;
int year;
int hour;
int min;
int sec;
}TIME;
int main() {
TIME time={
.sec=59,
.min=21,
.year=2021,
.month=4,
.date=2,
.hour=3,
};//乱序初始化
printf("%d\n",time.year);
return 0;
}
乱序初始化有个问题,编译器太旧了会报错,所以VC++这种是不能编译通过的
结构体数组
struct TIME
{
int date;
int month;
int year;
};
struct TIME time[]={
//date,month,year
{1,2,2021},
{2,3,2021},
{3,4,2021},
{4,5,2021},
{5,6,2021},
{6,7,2021},
};
怎么使用:
struct TIME
{
int date;
int month;
int year;
};
struct TIME time[]={
//date,month,year
{1,2,2021},
{2,3,2021},
{3,4,2021},
{4,5,2021},
{5,6,2021},
{6,7,2021},
};
int main() {
printf("%d %d %d \n",time[1].date,time[1].month,time[1].year);
return 0;
}
结构体指针
struct TIME
{
int date;
int month;
int year;
};
struct TIME time={1,2,2021};
int main() {
struct TIME *p;
p=&time;
printf("%d %d %d \n",p->date,p->month,p->year);
return 0;
}
->这个符号只有在结构体指针中使用,下一节再接着讲