结构体(构造类型),可以存放不同类型的数组
类型 变量名 = 初值
struct 结构体名
{
类型说明符 成员名;
};
例子:
#import
struct person {
int age;
char name[20];
char sex;
}; //分号注意!!!
typedef struct person Person; //类型重新定义 struct person重新定义为Person
int main(int argc, const char * argv[])
{
Person per1 ={26,"ZhaoYunlong",'m'};
Person per2 ={23,"ShenQingjun",'m'};
return 0;
}
//考试题
char 占 1个字节
int 占4个字节
double 占8个字节
float 占 4个字节
short 占 2个字节
long 占8个字节
bool 占1个字节
typedef
C语言中表示类型定义
1.typedef struct person Person; //类型重新定义 struct person重新定义为Person
或者
2.typedef struct person {
int age;
char name[20];
char sex;
}Person;
赋值
三个人选出年龄最小的
int main(int argc, const char * argv[])
{
Person per1 ={26,"ZhaoYunlong",'m'};
Person per2 ={23,"ShenQingjun",'m'};
Person per3 ={26,"LoiChundong",'f'};
Person min =per1.age
return 0;
}
成员访问
MyRect rect = {{3,5},{100,100}};
rect.origin.x = 15;
rect.size.width = 150; //必须点到最后
嵌套
typedef struct myorigin {
float x;
float y;
}MyOrigin;
typedef struct mysize{
float width;
float height;
}MySize;
typedef struct myrect{
MyOrigin origin;
MyOrigin size;
}MyRect;
int main(int argc, const char * argv[])
{
MyRect rect = {{3,5},{100,100}};
rect.origin.x = 15;
rect.size.width = 150;
return 0;
}
chong gao dao di <
chong di dao gao >
1、定义一个结构体变量&#xff08;包含年月日&#xff09;&#xff0c;计算该日在本年中为第几天&#xff1f;要求写一个days函数。参数是此结构体类型的变量&#xff0c;返回值是整数。
#import
typedef struct days{ //定义日期结构体
int year;
int month;
int day;
}Days;
int days(Days stu){
int Sum&#61;0;
int a[12] &#61; {31,28,31,30,31,30,31,31,30,31,30,31};
for (int i &#61; 0; i
}
Sum&#43;&#61;stu.day; //剩下的一个月几天
if (stu.month>2){
if ((stu.year % 400&#61;&#61;0) || ((stu.year % 4&#61;&#61;0) && (stu.year % 100 !&#61;0))) {
Sum&#43;&#43;;
}
}
return Sum;
}
int main(int argc, const char * argv[])
{
Days sds&#61;{1992,3,2};
printf("%d\n",days(sds));
//Days sds;
//scanf("%d %d %d\n",&sds.year,&sds.month,&sds.day);
printf("%d\n",days(sds));
return 0;
}