c语⾔调⽤结构体数组指针,C语⾔结构体、结构体数组、结构
体指针的⽤法
⼀、结构体的定义
struct student{ //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
};
⼆、结构体变量的定义
1先声明结构体模板,再定义结构体变量
struct student{ //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
};
struct student stu1; //结构体变量1
struct student stu2; //结构体变量1
2在声明结构体模板的的同时定义结构体变量
struct student{ //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
}stu1; //结构体变量
3在声明结构体模板的的同时定义结构体变量, 结构体名可省略。
struct { //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
}stu1; //结构体变量
三、⽤tyepedef定义数据类型
关键字typedef⽤于为系统固有的或程序员⾃定义的数据类型定义⼀个别名。
例如:typedef int STU;为int定义了⼀个新的名字STU,即STU与int是同义词。
#include
typedef int STU;
void main(){
STU a=1,b=2,temp=0;
temp=a;
a=b;
b=temp;
printf("%d%d",a,b);
}
所以typedef struct student STUDENT;与下⾯表⽰别名是等价的。
typedef struct student { //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
} STUDENT; //别名
STUDENTstu1,stu2; //变量
STUDENT STU[2]; //结构体数组变量的定义
四、结构体变量的初始化(包括结构体数组)
STUDENT stu1={2019001,"⼩范范",100};
STUDENT stu2={2019002,"王启年",90};
STUDENT STU[2]={{2019001,"⼩范范",100},{2019002,"王启年",90}}; //结构体数组变量的赋值五、嵌套结构体(是⼀个结构体嵌套另⼀个结构体作为⾃⼰的成员)(包括结构体数组)
1定义
typedef struct data{
int year; //年
int month;//⽉
int day; //⽇
}DTAE;
typedef struct student { //struct 结构体名
long studentID; //数据类型 成员名1
char studentName[10]; //数据类型 成员名2
int scoreMath; //数据类型 成员名3
DTAE birthday;//出⽣⽇期
} STUDENT; //别名
STUDENT stu1;
STUDENT stu2;
STUDENT STU[2];
2赋值
STUDENT stu1={2019001,"⼩范范",100,{1998,12,26}};
STUDENT stu2={2019002,"王启年",90,{1991,12,25}};
STUDENT STU[2]={{2019001,"⼩范范",100,{1998,12,26}},{2019002,"王启年",90,{1991,12,25}}}; 3引⽤(调⽤)
结构体名变量名**.**成员名 //不是结构名
ar=1991;
stu2.scoreMath=100;
STU[0].studentID=2019001;
从键盘赋值时 char 类型不⽤添加&
scanf("%c",stu1.studentName);
六、结构体指针的定义和初始化
1 结构体名*指针变量名
STUDENT *pt;
2定义并初始化
STUDENT *pt=&stu1; //结构体指针变量pt指向结构体变量stu1
上下两者等价
STUDENT *pt;
pt=&stu1;
3标准访问形式
指针结构体变量名——>成员名
pt->birthday;
另⼀种不常⽤
(*pt).studentID;
4访问数组
以下三者等价
STUDENT *pt=STU;//指向数组STU第⼀个元素的地址
STUDENT *pt=&STU[0];
STUDENT *pt;
pt=STU;
4结构体指针⼀般不作输出⽤,下⾯这个是普通指针的输出
int a=9;c语言struct用法例子
int *pt;
pt=&a;
printf("%d",*pt);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。