指向结构的指针
struct date{
int mouth;
int day;
int year;
}myday;
stuct date *p = &myday;
(*p).month = 12;
p->month = 12;
用->表示指针所指的结构变量的成员
///结构的初始化
#include<stdio.h>
struct date{
int month;
int day;
int year;
};
int main(int argc,char const *argv[]){
struct date today ={07,15,2021};
struct date thismonth = {.month = 7,.year=2021};
printf("Today's date is %i-%i-%i\n",today.year,today.month,today.day);
printf("This month is %i\n",thismonth.month);
return 0;
}
}
可以使用‘{ }’对结构体进行初始化,在{}中可以使用‘ . ’有选择的进行初始化,注意结构体中未被初始化的int类型的值为0。
结构运算
要访问整个结构,直接用结构变量的名字 对于整个结构,可以做赋值、取地址,也可以传递给 函数参数
p1 =(struct point){3,3};
p1 = p2
注意数组无法做这两种运算
自定义数据类型(typedef)
C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字。比如:
typedef int Length;
使得Length成为int类型的别名。 这样:Length这个名字就可以代替int出现变量定义和参数声明的地方了 像: Length a,b,num;
typedef struct date{
int month;
int day;
int year;
}Date;
|